6

我有以下正则表达式来验证收缩压/舒张压形式的血压值:

\b[0-9]{1,3}\/[0-9]{1,3}\b

该表达式的唯一缺陷是它允许多个非连续斜杠 (/)。例如,它允许 this 2/2/2。我希望它只允许从 1 到 999 的数字格式和斜线,以及从 1 到 999 的数字。例如,83/23、1/123、999/999、110/80 等。可以有人给我一些帮助吗?

我发现的唯一其他表达式是在这里: ^\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]?)$,但它不起作用。

顺便说一句,我正在使用 jquery。

谢谢。

4

4 回答 4

13

使用^and$匹配字符串的开头和结尾:

^\d{1,3}\/\d{1,3}$

通过这样做,您强制匹配的字符串完全符合该格式。

于 2013-02-16T22:28:48.860 回答
1

不要使用\b单词边界,因为斜线算作单词边界。

使用^和/或$可能是您最简单的解决方案。不幸的是,如果您的输入是字符串或句子的一部分,或者在一行中出现多次等,那么您需要考虑更多。

于 2013-02-16T22:31:24.380 回答
1

扩展 Blender 的答案,这是一个简单的检查,用于验证 BP 值的格式:120/80:

if(/^\d{1,3}\/\d{1,3}$/.test(120/80)) {
    console.log("BP Valid");
} else {
    console.log("Invalid BP");
}
于 2016-01-18T11:21:52.753 回答
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]?)$

这是正确的,另一个有一个额外的\

于 2020-11-25T23:30:17.740 回答