Javascript 检查字符串是否包含与正则表达式匹配的子字符串
我正在写一个脚本来检查字符串中是否存在美国运通信用卡号 我的代码如下所示:Javascript 检查字符串是否包含与正则表达式匹配的子字符串,javascript,regex,string,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,但如果我保留相同的文本并在其周围
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'
,它将打印出未找到代码>
为了找到与正则表达式匹配的子字符串,我应该更改什么?
我不需要与正则表达式匹配的子字符串索引,只需要true\false。和$
分别将匹配限制为字符串的开头和结尾。删除它们可能就足够了。和$
分别将匹配限制为字符串的开头和结尾。删除它们可能就足够了。您只需删除分别与stat和end of line匹配的^
和$
:
let amexRegex= /3[47][0-9]{13}/;
您只需删除分别与stat和end of line匹配的^
和$
:
let amexRegex= /3[47][0-9]{13}/;
请注意,仅删除^
和$
可能会导致不正确的匹配,例如较长的数字字符串。
你最好用单词边界来代替它们:
\b3[47][0-9]{13}\b
请注意,仅删除^
和$
可能会导致不正确的匹配,例如较长的数字字符串。
你最好用单词边界来代替它们:
\b3[47][0-9]{13}\b