簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM