正则表达式年龄验证17-120

时间:2019-01-15 23:14:57

标签: html regex

我需要做一个正则表达式来验证年龄介于17-120(包括17和120)之间的年龄

我尝试过

^(100 | [1-9] [7-9] [0-9]?)$

我知道这不好,但我不知道该怎么做

我需要使用格式属性将其保存在表单中

仅数字允许

2 个答案:

答案 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所说的来处理此特定情况,但是从更一般的意义上讲,它在许多情况下可能非常繁琐。