非常具体的搜索(字符串的搜索开始)上的javascript正则表达式匹配



给定以下正则表达式

/144*/g

我希望它匹配 14450、14445,但不是 14。

我想要的是匹配前 3 个字符是 144 和之后的任何字符。

var zip = '14';//Don't want this to match
var search = new RegExp('144*', 'g');
if (zip.match(search)) //TRUE

我想要的是匹配前 3 个字符是 144 和之后的任何字符。

为此,您不需要正则表达式或字符串操作。您可以使用string.indexOf并检查144是否位于字符串的开头(第 0 个索引):

const isOneFourFour = zip.indexOf('144') === 0

您可以使用此正则表达式,它将匹配任何以144开头的文本,但不匹配14

^(?!14$)144.*$

这种负面的前瞻(?!14$)停止与数字匹配14其余部分都是允许的。

正则表达式演示

消极的展望确实是多余的,你可以把它写成^144.*$^144d*$

您的模式144*匹配 14,然后重复 0+ 次数字 4。

这将匹配例如 14、144 或 14444444

如果您希望匹配项以 14 开头,后面的内容应该是 1 位或多位数字,您可以使用:

^144d+

正则表达式演示

最新更新