这是我想要找到的示例字符串:
var test = "High=50";
var test2 = "Low=-8.7";
低弦和高弦的编号范围均可从-9.99到99.99。这是一个我尝试但不起作用的正则表达式:
var highPattern = "/High=/^-?[0-9]\d*(\.\d+)?$"
但是当我尝试
时var highRegExp = new RegExp(highPattern);
if(highRegExp.test(test)){
alert("true");
}else{alert("flase")}
每次都返回false。
蒂姆,在评论中问我为什么需要正则表达式。让我解释一下,我正在测试一个可能构建的字符串:" Low = 2 High = 15.5"。如果我的DOM得到更新,并且我需要删除高值更改" High = 15.5"并添加"高= 20"。数值范围可以是-9.99到99.99之间的任何值。答案 0 :(得分:2)
好吧,回答你的问题,你可以使用/=-?\d{1,2}(\.\d{1,2})?/
,例如:
let reg = /=-?\d{1,2}(\.\d{1,2})?/;
alert(reg.test("High=50"));
alert(reg.test("Low=-8.7"));
答案 1 :(得分:2)
如果您想确保格式:
new RegExp(/^(High|Low)\=-{0,1}\d{1,2}\.\d{2}$/).test("High=-0.12")
如果你想提取你也可以使用的数字(与正则表达式相比更容易阅读)
Number(test.split("=")[1])
修改强>
这个也检查范围(-9.99到99.99):
^(High|Low)\=(-[0-9]{1}|[0-9]{1,2})(\.[0-9]{1,2}){0,1}$
答案 2 :(得分:0)
您可以使用以下RegEx:
\-?[0-9]{1,2}\.?[0-9]{0,2}