我有一些包含血壓資料的字串,前面的數字/表示血壓的上限/上限(收縮壓),后面的數字/表示血壓的下限(舒張壓)。
弦是這樣的
let str1 = "170/80"; // Should Pass
let str2 = "90/60"; // Should Pass
let str3 = "140/90"; // Should Pass
let str4 = "should not/pass"; // Shouldn't Pass
我有一個正則運算式,它試圖確保這些字串確實是血壓讀數,即確保這些值都是數字并且它們之間是 a/但它似乎不起作用(即使與所謂的正確的字串)。
我的正則運算式是:((\d)/(\d))
誰能告訴我為什么它不起作用?什么應該是正確的正則運算式?
uj5u.com熱心網友回復:
您的正則運算式中的問題是您沒有轉義 slash \,而且您正在匹配單個數字\d。為了解決這些問題,您可能需要這樣的正則運算式:
(\d )\/(\d )
在此處查看演示。
uj5u.com熱心網友回復:
轉義斜線并使用多個數字
https://regex101.com/r/uC2w4h/1
這里有健全性測驗來洗掉日期或其他奇怪的數字。將 45 更改為您想要測驗的低值。
const str = `170/80 90/60 140/90 should not/pass on 11/12`
const bps = [...str.match(/(\d{2,3})\/(\d{2,3})/g)].filter(match => {
const [syst,diast] = match.split("/")
return syst > 45 && diast > 45;
})
console.log(bps)
uj5u.com熱心網友回復:
如評論中所述,您可以使用\d 匹配多個數字。但是,如果您的文本可以包含其他數字,您可能希望使用更具體的數字\d{1,3}來僅捕獲血壓有效范圍內的值。完整的正則運算式將是((\d{1,3})\/(\d{1,3}))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/490490.html
標籤:javascript 正则表达式 细绳
