正则表达式匹配字符串后没有匹配字符串的数字

时间:2017-11-21 07:05:15

标签: javascript regex

我正在尝试在javascript中编写一个正则表达式,以匹配特定字符串后的一系列数字,而不会在结果中获取字符串。到目前为止,我已经想出了这个:

(?!smart_id=)[0-9]+

将针对以下字符串进行测试:

ksld8403smart_id=9034&kqwop
discid=783&smartid=83234&ansqw
fdsjfnfd3209sdf&smart_id=2102&hjg

但我在smart_id之前和之后都得到了这两个数字。测试需要在https://regexr.com/

上执行

1 个答案:

答案 0 :(得分:0)

您可以将正则表达式与array#map一起使用。匹配结果后,您可array#split =上的结果,并获取第一个索引的值。



var str = `ksld8403smart_id=9034&kqwop
discid=783&smartid=83234&ansqw
fdsjfnfd3209sdf&smart_id=2102&hjg`;

console.log(str.match(/(smart_id=)(\d+)/g).map(matched => +matched.split('=')[1]));