正则表达式严格匹配百分比值

时间:2017-02-13 18:44:50

标签: javascript regex

我希望严格匹配{ "Request": { "Path": { "Matchers": [ { "Name": "RegexMatcher", "Pattern": "^/Systems XYZ (ABC)/2016.10/aaa/bbb/api/ccc/customers/.*$" } ] } }, "Response": { "BodyAsJson": { "result": "test" }, "Headers": { "Content-Type": "application/json" } } } 45%等字符串。

如果在2%abc34%等所需字符串之前或之后添加了其他字符串,则不应该匹配。

2 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式:

^\d+%$
  • ^字符串的开头。这样可以确保不允许使用字符串ABC45%
  • \d+至少一个号码
  • $字符串结束。这样可以确保不允许使用字符串45%ABC

以下是一个实例:



var regex = /^\d+%$/;
var samples = [
  "123%",
  "ABC12%",
  "ABC123%ABC",
  "123%abc",
  "abc"
];

for(var i=0; i<samples.length; i++) {
  var sample = samples[i];
  console.log(sample, !!sample.match(regex));
}
&#13;
&#13;
&#13;

答案 1 :(得分:1)

这对你有用:

const testData = (data) => /^(?:[1-9]\d?%|0%)$/.test(data)

const test = ["1.2%","120%","12%","2%", "ABc%", "1,3%", "23", "abc34%", "34%cd212", "00%", "0%"]

for(let x of test){
  console.log(`${x} ${testData(x)}`)
}

^开头的字符串
{1}}从1到9的数字 [1-9]可选1号 \d?%符号 %结束了刺痛 $或0%