如果你有一个字符串如
谢谢。
"foo bar 32536364"
和一个正则表达式 /foo bar \d+/
,你如何检查正则表达式是否匹配整个字符串而不是字符串中的某个子串?同时,你不能改变输入值,如添加 ^
和 $
。谢谢。
"foo bar 32536364"
和一个正则表达式 /foo bar \d+/
,你如何检查正则表达式是否匹配整个字符串而不是字符串中的某个子串?同时,你不能改变输入值,如添加 ^
和 $
。如果源字符串的长度与匹配字符串相同,那么你就匹配了整个字符串而不仅仅是其中一部分。你可以将源字符串的长度与匹配字符串进行比较,也可以将匹配字符串与源字符串进行比较:
let source1 = "foo bar 12345";
let source2 = "foo bar 12345 foo";
let match1 = source1.match(/foo bar \d+/);
let match2 = source2.match(/foo bar \d+/);
console.log(match1[0] === source1);
console.log(match1[0].length === source1.length);
console.log(match2[0] === source2);
console.log(match2[0].length === source2.length);
var m = rx.exec(s); if (m && m[0].length === s.length) { console.log("完全匹配!") } else { console.log("没有匹配!") }
- Wiktor Stribiżew