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

使用php、js或者其他语言实现字符串 'AdminProTable' 到 'admin_pro_table' 的转换

使用php、js或者其他语言实现字符串 'AdminProTable' 到 'admin_pro_table' 的转换

米脂 2019-05-25 13:25:53
使用php、js或者其他语言实现字符串'AdminProTable'到'admin_pro_table'的转换如题,不限制单词个数
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

语言不同,思路相同,都是对字符串进行循环,如果当期字符为大写,那么就转小写该字符并且在前面拼接_字符,最后检查字符串是否以_开头,如果是就去掉最前面的_字符,也可以像第一个例子在循环的时候判断如果是第一个字符大写那么就不在字符前面拼接_字符
JS
varold='AdminProTable';
varstr='';
for(keyinold){
if(old[key].match(/^.*[A-Z]+.*$/)){
str+=key!=0?'_':''+old[key].toLocaleLowerCase();
}else{
str+=old[key];
}
}
console.log(str);
运行结果
PHP
$old='AdminProTable';
$str='';
for($i=0;$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=''
foroinold:
#printo.isupper()
str+='_'+o.lower()ifo.isupper()elseo.lower()
str=str[1:]ifstr.startswith('_')elsestr
printstr
运行结果
                            
查看完整回答
反对 回复 2019-05-25
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

python
s='AdminProTable'
print''.join(['_{}'.format(_.lower())if_.isupper()andi>0else_.lower()fori,_inenumerate(s)])
js
var
s='AdminProTable',
t='';
for(variins){
varl=s[i].toLowerCase();
t+=i>0&&s[i]==s[i].toUpperCase()?'_'+l:l;
}
console.log(t);
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 313 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号