Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 简化特定的多正则表达式和字符串方法_Javascript_Regex_String - Fatal编程技术网

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])