Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 - Fatal编程技术网

Javascript 正则表达式使用通配符精确匹配字符串的开头和结尾

Javascript 正则表达式使用通配符精确匹配字符串的开头和结尾,javascript,regex,Javascript,Regex,我正在搜索以下格式的字符串:ABC-001 我想从用户文本输入字段构造正则表达式搜索,以便搜索: ABC* and match ABC-001, ABC-002, and so on... ABC*2 and match ABC-002 but NOT ABC-012 ABC*12 and match ABC-012 我知道我需要进行一些字符串操作才能从用户输入转换为正则表达式,但作为示例,我构造了一个正则表达式,如下所示: ^ABC.*2$ 不幸的是,这与ABC-002和ABC-012匹配

我正在搜索以下格式的字符串:ABC-001

我想从用户文本输入字段构造正则表达式搜索,以便搜索:

ABC* and match ABC-001, ABC-002, and so on...
ABC*2 and match ABC-002 but NOT ABC-012
ABC*12 and match ABC-012
我知道我需要进行一些字符串操作才能从用户输入转换为正则表达式,但作为示例,我构造了一个正则表达式,如下所示:

^ABC.*2$

不幸的是,这与
ABC-002
ABC-012
匹配。您可以在用户输入时执行此操作
替换

var re = new RegExp(input.replace(/\*/g, '-0*'), "gi");

这将把
ABC*2
转换成
/ABC-0*2/gi
regex,这将匹配
ABC-002
,但不会匹配
ABC-012

我想你需要
^ABC-0*2$
其中
2
是动态的。除了ABC-002之外,还能匹配任何东西,比如ABC-102吗?不,ABC*2应该只匹配ABC-002。只有对ABC*102的搜索应与ABC-102匹配。