我正在尝试编写一个 Javascript 正则表达式来匹配少于 3 个字母的单词(并且不匹配更长的单词)。我不明白为什么这不起作用。
<html>
<body>
<script>
var re = new RegExp("(\W|^)\w{0,2}(\W|$)", "gi");
var text = "ab ab";
var matched = re.test(text);
document.write(matched)
</script>
</body>
</html>
我试图得到一个最小的例子,但我有更多的要求,如果例子不完整我会编辑并添加任何必要的。
最佳答案
您的 \
被视为 Javascript 转义,因此正则表达式的实际值为 "(W|^)w{0,2}(W|$)"
.
相反,使用正则表达式文字:/(\W|^)\w{0,2}(\W|$)/gi
关于javascript - 无法使与 javascript 长度相关的正则表达式起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6523751/