Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查字符串是否包含与正则表达式匹配的子字符串_Javascript_Regex_String - Fatal编程技术网

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