Javascript 简化特定的多正则表达式和字符串方法
我正在尝试将字符串转换为大小写。(大写字母是由破折号连接的所有小写单词)。挑战。虽然我的代码正在运行,但我想知道如何简化它,也就是说,将两个正则表达式组合成一个,并将方法Javascript 简化特定的多正则表达式和字符串方法,javascript,regex,string,Javascript,Regex,String,我正在尝试将字符串转换为大小写。(大写字母是由破折号连接的所有小写单词)。挑战。虽然我的代码正在运行,但我想知道如何简化它,也就是说,将两个正则表达式组合成一个,并将方法replace和toLowerCase组合成一个语句,如果可能 这是我的密码: function spinalCase(str) { var reg = new RegExp(/([a-zA-Z]+)[^a-zA-Z]/, "g"); str = str.replace(reg, "$1-"); var reg2 =
replace
和toLowerCase
组合成一个语句,如果可能
这是我的密码:
function spinalCase(str) {
var reg = new RegExp(/([a-zA-Z]+)[^a-zA-Z]/, "g");
str = str.replace(reg, "$1-");
var reg2 = new RegExp(/([a-z])([A-Z])/, "g");
str = str.replace(reg2, "$1-$2");
str = str.toLowerCase();
return str;
}
spinalCase(“这是脊椎穿刺”)
应该返回“这是脊椎穿刺”
。
spinalCase(“thisIsSpinalTap”)
应该返回“这是脊椎抽头”
。
spinalCase(“安迪·格里菲斯秀”)
应该返回“安迪·格里菲斯秀”
。
spinalCase(“天线宝宝说Eh-oh”)
应该返回“天线宝宝说Eh-oh”
。
spinalCase(“所有小东西”)
应该返回“所有小东西”
使用下面的正则表达式可以获得相同的结果(只是管道问题):
它取代了$1-$2
:
函数spinalCase(s){
返回s.replace(/([a-z])(?:([a-z])|[^a-zA-z\n])/g,'$1-$2')。toLowerCase();
}
var str=`这是脊椎抽头
这是一张平底牌
安迪·格里菲斯秀
天线宝宝说啊哦
所有的小事`;
console.log(spinalCase(str))代码>使用下面的正则表达式可以获得相同的结果(只是管道问题):
它取代了$1-$2
:
函数spinalCase(s){
返回s.replace(/([a-z])(?:([a-z])|[^a-zA-z\n])/g,'$1-$2')。toLowerCase();
}
var str=`这是脊椎抽头
这是一张平底牌
安迪·格里菲斯秀
天线宝宝说啊哦
所有的小事`;
console.log(spinalCase(str))代码>如果您的代码有效,那么它在SO中是离题的。你应该考虑发布问题。如果你的代码工作,那么它就偏离主题了。你应该考虑把问题公布出来。
([a-z])(?:([A-Z])|[^a-zA-Z])