我有以下正则表达式来验证收缩压/舒张压形式的血压值:
\b[0-9]{1,3}\/[0-9]{1,3}\b
该表达式适用于允许多个非连续斜杠(/)的唯一缺陷。例如,它允许此2/2/2
。我希望它只允许从1到999的数字格式,并斜杠,再次从1到999的数字。例如,83 / 23,1 / 123,999 / 9999,110 / 80等。可以有人给我一些帮助吗?
我发现的唯一其他表达is here:^\b(29[0-9]|2[0-9][0-9]|[01]?[0-9][0-9]?)\\/(29[0-9]|2[0-9][0-9]|[01]?[0-9][0-9]?)$
,但它无效。
BTW,我正在使用jquery。
感谢。
答案 0 :(得分:11)
使用^
和$
匹配字符串的开头和结尾:
^\d{1,3}\/\d{1,3}$
通过这样做,您可以强制匹配的字符串完全该表单。
答案 1 :(得分:1)
不要使用\b
字边界,因为斜杠算作字边界。
使用^
和/或$
可能是您最简单的解决方案。不幸的是,如果你的输入是一个字符串或句子的一部分,或者在一行中出现不止一次等等,你就会有更多的想法。
答案 2 :(得分:0)
扩展Blender的答案,这里是一个简单的检查,以格式验证BP值:120/80:
if(/^\d{1,3}\/\d{1,3}$/.test(120/80)) {
console.log("BP Valid");
} else {
console.log("Invalid BP");
}
答案 3 :(得分:0)
^\b(29[0-9]|2[0-9][0-9]|[01]?[0-9][0-9]?)\/(29[0-9]|2[0-9][0-9]|[01]?[0-9][0-9]?)$
这是正确的,另一个有一个额外的\