JS - 字符串中包含与正则表达式匹配的子字符串

11
检查JavaScript字符串是否包含与正则表达式匹配的子字符串。
我尝试过 string.includes(substring)。
var myString =  "This is my test string: AA.12.B.12 with some other chars";
myString.includes(/^[A-Z]{2}\.\d{2}\.\[A-Z]{1}\.\d{2,3}$/);

真,假

然而,代码无法编译


制作正则表达式,然后使用字符串作为参数调用.test() - Pointy
2个回答

17

您可以在正则表达式上使用.test()来检查模式是否与字符串的一部分匹配。由于模式只需要匹配字符串的一部分,因此您需要删除^$字符,因为您匹配的模式可以包含在一行中。此外,在表达式中不需要转义字符类括号,就像您尝试做的那样(\[),因为您希望[被视为字符类,而不是字面方括号:

const myString =  "This is my test string: AA.12.B.12 with some other chars";
const res = /[A-Z]{2}\.\d{2}\.[A-Z]{1}\.\d{2,3}/.test(myString);
console.log(res);


5
如果我们查看String.prototype.includes()的文档,我们可以看到它需要一个字符串,而不是正则表达式。相反地,请使用RegExp.prototype.test()

此外,由于您只想匹配子字符串,您需要删除开头和结尾的锚点^$。(更多关于正则表达式锚点的信息

你的代码变成:

var myString =  "This is my test string: AA.12.B.12 with some other chars";
var myRegex = /[A-Z]{2}\.\d{2}\.\[A-Z]{1}\.\d{2,3}/;
console.log(myRegex.test(myString));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接