我有一个正则表达式,它正在搜索空格或下划线的实例,用短划线替换它。
function spinalCase(str) {
var origSentence = str;
// case of camelCase
origSentence = origSentence.replace(/([a-z])([A-Z])/g, '$1 $2');
// convert to lower case and remove whitespace or underscores for dashes
origSentence = origSentence.toLowerCase().replace(/ /g,"-");
return origSentence;
}
spinalCase('The_Andy_Griffith_Show');
我不确定如何在/ / g之后向正则表达式添加逻辑“OR”,或者如果我需要将其变成'if'语句,这看起来很笨拙。 任何帮助表示赞赏。
答案 0 :(得分:3)
使用|
或字符类:
.replace(/ |_/g,"-");
.replace(/[ _]/g,"-");
字符类将匹配列出的任何内容。除了一些元字符外,几乎所有字符内部的字符都将被视为字面值,例如开头的^
将否定匹配(除了......之外的所有内容)和a-b
在a
和b
之间进行更改。
我可能会错过更多。
|
是您最接近逻辑或。 match 1|match 2
。
并且结合起来(我假设我们都是成年人,而且我不需要告诉你,实际这样做是不好的做法):
/(John|Thom)s[oe]n/
哪个匹配:
Johnson
Johnsen
Thomson
Thomsen