【发布时间】:2016-10-24 12:14:01
【问题描述】:
我想在格式上匹配一个字符串:
"XYZ 1234.10"
//XYZ can be one of a relatively large, but defined, set of 3 uppercase letter combination.
//String must start with XYZ or other from allowed set
//1234 can be an integer of arbitrary length >= 0
//10 can be an arbitrary integer in the range 0-99, but must have string-length of 2. (eg. 00, 03, 82)
//String must end with .NN (dot, number, number) /\.\d\d$/
我尝试了以下正则表达式,但捕获了“XYZ”以及“XYZ 1234.10”:
var regex = /^(XYZ|ABC|QST) \d+\.\d\d$/
regex.exec("XYZ 1234.10")
// => ["XYZ 1234.10", "XYZ"] would like it to be ["XYZ 1234.10"]
我想只匹配完整的表达式。我一直无法找到用 javascript 正则表达式表达这一点的方法。
这完全可以实现吗?如果是这样:怎么做?
【问题讨论】:
-
console.log(regex.exec("XYZ"))结果为 null。您的正则表达式看起来或多或少是正确的。 -
我很困惑 - 你确实在零位得到你想要的。你不想捕捉其他任何东西吗?
-
为什么投反对票?
-
@WiktorStribiżew:在欺骗目标上不错。我没想到会有这样一个清晰的好。
-
@WiktorStribiżew:改进了我的解释。还;感谢您指出我的实际问题。
标签: javascript regex