为了账号安全,请及时绑定邮箱和手机立即绑定

使用php、js或者其他语言实现字符串 'AdminProTable' 到 'admin_pro_

使用php、js或者其他语言实现字符串 'AdminProTable' 到 'admin_pro_

慕田峪7331174 2018-12-14 15:23:14
使用php、js或者其他语言实现字符串 'AdminProTable' 到 'admin_pro_table' 的转换如题,不限制单词个数
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

语言不同,思路相同,都是对字符串进行循环,如果当期字符为大写,那么就转小写该字符并且在前面拼接_字符,最后检查字符串是否以_开头,如果是就去掉最前面的_字符,也可以像第一个例子在循环的时候判断如果是第一个字符大写那么就不在字符前面拼接_字符


JS

var old = 'AdminProTable';

var str = '';

for (key in old) {

    if (old[key].match(/^.*[A-Z]+.*$/)) {

    str += key != 0 ? '_' : '' + old[key].toLocaleLowerCase();

  } else {

      str += old[key];

  }

}

console.log(str);

运行结果


PHP

<?php

$old = 'AdminProTable';

$str = '';

for ($i = 0; $i < strlen($old);  $i++) {

    $str .= preg_match('/^[A-Z]+$/', $old[$i]) ? '_' . strtolower($old[$i]) : $old[$i];

}

$str = $str[0] === '_' ? substr($str, 1) : $str;

var_dump($str);

?>

运行结果


Python

#!/usr/bin/python

# -*- coding: utf-8 -*-

old = 'AdminProTable'

str = ''

for o in old:

    #print o.isupper()

    str +=  '_' + o.lower() if o.isupper() else o.lower()

str = str[1:] if str.startswith('_') else str   

print str

运行结果


查看完整回答
反对 回复 2019-01-07
  • 1 回答
  • 0 关注
  • 452 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信