我有一段代码如下所示:
let regex = /^[^aeiou]+(?=[aeiou])/;
let regexStr = "hhhhello".match(regex);
console.log(regexStr.length); // prints 1
它不应该打印4吗?但是,如果我向 regexStr 添加“”,它会显示正确的值。
let regex = /^[^aeiou]+(?=[aeiou])/;
let regexStr = "hhhhello".match(regex) + "";
console.log(regexStr.length); // prints 4
有人可以解释一下发生了什么吗?
最佳答案
在您的示例中,regexStr
是一个包含一个元素的数组,即字符串hhhh
。通过添加一个字符串,您可以隐式转换为字符串,该字符串的长度为 4。您可以只使用 regexStr[0].length
。
关于javascript - 为什么正则表达式匹配的字符串表现得很奇怪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60683706/