我需要做一个正则表达式来验证年龄介于17-120(包括17和120)之间的年龄
我尝试过
^(100 | [1-9] [7-9] [0-9]?)$
我知道这不好,但我不知道该怎么做
我需要使用格式属性将其保存在表单中
仅数字允许
答案 0 :(得分:1)
您应将所有可能的组合放入备用列表中
^(?:1[01][0-9]|120|1[7-9]|[2-9][0-9])$
演示:https://regex101.com/r/6SzInz/1
基本上,每个边界条件都需要一个模式:
1[7-9]
涵盖17到19之间的数字[2-9][0-9]
涵盖20到99之间的数字1[01][0-9]
涵盖100到119之间的数字120
涵盖了数字... 120 答案 1 :(得分:0)
使用正则表达式无法完全实现此目的。使用正则表达式,您可以检查字符串是否遵循特定的 pattern ,即如果需要的话,即“字符串的外观”。
例如,^[0-9]{2,3}$
是一个正则表达式,用于检查输入是否仅包含两位或三位数字/数字。
对于“介于17和120之间”部分,我想您需要使用JS if语句,类似于以下内容:
if(age <= 120 && age >= 17) {
//accept, and do your stuff
}
else {
//show some validation error
}
编辑:当然,您可以按照@blhsing所说的来处理此特定情况,但是从更一般的意义上讲,它在许多情况下可能非常繁琐。