Javascript 正则表达式使用通配符精确匹配字符串的开头和结尾
我正在搜索以下格式的字符串:ABC-001 我想从用户文本输入字段构造正则表达式搜索,以便搜索: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* 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匹配。