检查字符串是否包含匹配正则表达式的子字符串

时间:2017-11-18 12:05:28

标签: javascript regex string

我正在写一个脚本来检查字母表中是否出现了美国运通信用卡号码。

我的代码如下所示:

let amexRegex= /^3[47][0-9]{13}$/;

if(text.search(amexRegex) != -1){
    console.log('Found!');
} else {
    console.log('Not found!');
}

当我将text设置为'378734493671000'(有效的美国运通信用卡号码)时,脚本会打印出Found!,但如果我保留相同的文字并在其周围添加一些文字,就像这个:'378734493671000 ABCDEFG',打印出Not found!

为了找到匹配正则表达式的子字符串,我应该更改什么? 我不需要匹配正则表达式的子字符串索引,只需要true \ false。

4 个答案:

答案 0 :(得分:2)

^$分别限制匹配字符串的开头和结尾。删除它们可能就足够了。

答案 1 :(得分:2)

您只需要删除分别匹配统计信息和行尾的^$

let amexRegex= /3[47][0-9]{13}/;

答案 2 :(得分:1)

let amexRegex = /3[47][0-9]{13}/

if(amenxRegex.test(text) {
  console.log('Found!')
} else {
  console.log('Not found!')
}

答案 3 :(得分:1)

请注意,仅删除^$会导致错误匹配,例如较长的数字字符串。 您最好用字边界替换它们:

\b3[47][0-9]{13}\b

Demo