[英]RegEx Find a string that contains a pattern and variables
這是我要查找的示例字符串:
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。
蒂姆(Tim)在評論中問我為什么在這里需要正則表達式。 讓我解釋一下,我正在測試一個可能構建如下的字符串:“ Low = 2 High = 15.5”。 如果我的DOM得到更新,並且高值發生變化,則需要刪除“ High = 15.5”並添加“ High = 20”。 數值范圍可以在-9.99到99.99之間。
好吧,回答您的問題,您可以使用/=-?\\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"));
如果要確保格式:
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}$
您可以使用以下RegEx:
\-?[0-9]{1,2}\.?[0-9]{0,2}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.