为什么以下代码返回“ZZZCamelCase”?这样的正则表达式是否检查字符串是否以小案例a-z开头和结尾?根据我的理解,str
变量应该匹配这样的条件,所以控制台输出应该是“ZZZZZZZZZZZZ”,但显然它以某种方式打破了str
,并检查了正则表达式的子串。为什么?如何告诉程序将“testCamelCase”视为一个字符串?
var str = "testCamelCase";
console.log(str.replace(/^[a-z]+/, 'Z')); // ZZZCamelCase
答案 0 :(得分:2)
在这里,您要匹配一个或多个小写字母。那将是'测试'在你的字符串中,因为在那之后出现大写' C'。所以只有'测试'受到ZZZ'
的影响console.log(str.replace(/^[a-z]+/, 'ZZZ')); // ZZZCamelCase
使用
str.replace(/[a-z]/ig, 'Z')
获得' ZZZZZZZZZZZZ'
答案 1 :(得分:2)
您忘了,正则表达式区分大小写。这意味着,[a-z]
不会捕获整个字符串。 [a-zA-Z]
。 [\w]
也是如此,包括0-9的数字。