RegEx查找包含模式和变量的字符串

时间:2017-06-26 13:29:32

标签: javascript regex

这是我想要找到的示例字符串:

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之间的任何值。

3 个答案:

答案 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}