【发布时间】:2017-09-12 01:04:08
【问题描述】:
我希望 new RegExp('\b\w{1,7}\b', "i").test('bc4rg6') 返回 true,因为我想测试字符串“bc4rg6”是字母数字并且有 1 到 7 个字符。但是浏览器给出的是假的。如何修复它以便我可以测试所述条件?谢谢
【问题讨论】:
标签: javascript regex
我希望 new RegExp('\b\w{1,7}\b', "i").test('bc4rg6') 返回 true,因为我想测试字符串“bc4rg6”是字母数字并且有 1 到 7 个字符。但是浏览器给出的是假的。如何修复它以便我可以测试所述条件?谢谢
【问题讨论】:
标签: javascript regex
您需要对字符串中的反斜杠进行转义,因为\b 是一个转义序列,会变成退格字符。
console.log(new RegExp('\\b\\w{1,7}\\b', "i").test('bc4rg6'));
但如果正则表达式是常量,则不需要使用new RegExp,只需使用正则表达式字面量即可。
console.log(/\b\w{1,7}\b/i.test('bc4rg6'))
【讨论】:
RegExp 函数不接受字符串作为参数。
改为传递带有转义斜杠的Regular Expression 模式来指示模式的开始和结束。
new RegExp(/\b\w{1,7}\b/, "i").test('bc4rg6');
您可以在 Mozilla 阅读有关 RegExp 功能的更多信息。
【讨论】: