**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2天前关闭。
Improve this question
下面是JavaScript中的原始代码
let input = TIMOR-LESTE
let output = Timor-Leste (good)
input = input.replace(new RegExp('(?:\\b|_)([a-z])', 'g'), function(
char
) {
return char.toUpperCase();
});
我尝试删除RegExp并使用Reg literal
let input = TIMOR-LESTE
let output = Timor-leste (bad)
input = input.replace(/(?:\\b|_)([a-z])/g, function(
char
) {
return char.toUpperCase();
});
不知何故,原来的new RegExp('(?:\\b|_)([a-z])', 'g')
能够用连字符大写每个第一个字符。
你知道这是怎么回事吗
1条答案
按热度按时间9o685dep1#
你还有一个代码
\
正确的代码如下:/(?:\\b|_)([a-z])/g
=>/(?:\b|_)([a-z])/g
这是因为RegExp构造函数的参数是普通字符串,每个
\
需要额外的\
进行转义