正则表达式:检查特定字符串后的值

时间:2017-05-23 12:57:53

标签: regex

我有一个如下所示的字符串:["StringA":8,"StringB":50,"StringC":286]。 现在我想检查一下" StringA" 之后的是否小于 10 。所以" StringA":1 " StringA":9 应匹配,但" StringA&#34 ;:12 " StringA":318 不匹配。

我尝试了("Data":[0-9]),但这确实不起作用。

2 个答案:

答案 0 :(得分:1)

这个正则表达式应该是足够的:

"StringA"\s*:\s*(\d)\b

正则表达式DEMO及解释

var s ='["StringA":8,"StringB":50,"StringC":286,"StringA":44]';
console.log(s.match(/"StringA"\s*:\s*(\d)\b/g));

答案 1 :(得分:0)

如果您已准备好 以匹配零填充值,例如"StringA":0101在技术上可能值较少而不是10)你可以尝试负向前看

  "Data":[0-9](?![0-9])

即。 "Data":后跟单个数字,后跟第二个数字。如果要包含零填充值,请添加0*

  "Data":0*[0-9](?![0-9])