如果给你一个像"foo bar 32536364"
和正则表达式/foo bar \d+/
这样的字符串,你如何检查正则表达式是否匹配完整字符串而不是字符串中的某些子字符串?此外,我无法更改输入值,例如放置^
和$
。
由于
答案 0 :(得分:2)
您既可以将源的长度与匹配进行比较,也可以将匹配的字符串与源进行比较,如果它们相同,则匹配整个字符串,而不仅仅是其中的一部分:
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);