如何验证版本以接受 4.4+ 但不接受 4.4+.0
How to validate version to accept 4.4+ but not 4.4+.0
我已经编写了正则表达式来接受以下类型的版本
- "a.." ---> 任何版本的"a"
- "a.b.*" ---> 任何版本的"a.b"
- "a.b+" ---> "a.b" 或更高版本
- "a.b.c+" ---> "a.b.c" 或更高版本
示例:“4.2.2+”、“4.3.*”、“4.2+”
/^([0-9])\.([0-9]+[*]{0,1}[+]?)(?:\.([0-9]+[*]{0,1}[+]?))?$/
上面接受的是所有类型,还接受“4.2+.0”,应该是无效的。我怎样才能避免这种“4.2+.0”的情况。
任何人都可以提供正则表达式来验证以上版本吗?
要匹配至少有一个点和末尾可选 *
或 +
的示例:
^\d+(?:\.\d+)+(?:\.?[+*])?$
^
字符串开头
\d+
匹配 1+ 个数字
(?:\.\d+)+
重复匹配1次或多次.
和1+位数字
(?:\.?[+*])?
可选地匹配一个可选的点和 *
或 +
$
字符串结束
看到一个regex demo.
要匹配不带点的示例,您可以将重复组的加号更改为星号:
^\d+(?:\.\d+)*(?:\.?[+*])?$
再看一个regex demo。
请使用以下正则表达式验证版本
/^\d+((?:.\d+([+]$){0,1})|(.[*]{1,1})){1,2}$/
^ 字符串开始
\d+ 匹配1+位数字
- (?:.\d+([+]$))+ 重复匹配 1 次或多次。和 1+ 位数字,如果您要添加 + 然后 $ 字符串结尾。
或者
- (?:.?[*])?可选地匹配一个可选的点 * 一次或两次
$ 字符串结尾
我已经编写了正则表达式来接受以下类型的版本
- "a.." ---> 任何版本的"a"
- "a.b.*" ---> 任何版本的"a.b"
- "a.b+" ---> "a.b" 或更高版本
- "a.b.c+" ---> "a.b.c" 或更高版本
示例:“4.2.2+”、“4.3.*”、“4.2+”
/^([0-9])\.([0-9]+[*]{0,1}[+]?)(?:\.([0-9]+[*]{0,1}[+]?))?$/
上面接受的是所有类型,还接受“4.2+.0”,应该是无效的。我怎样才能避免这种“4.2+.0”的情况。
任何人都可以提供正则表达式来验证以上版本吗?
要匹配至少有一个点和末尾可选 *
或 +
的示例:
^\d+(?:\.\d+)+(?:\.?[+*])?$
^
字符串开头\d+
匹配 1+ 个数字(?:\.\d+)+
重复匹配1次或多次.
和1+位数字(?:\.?[+*])?
可选地匹配一个可选的点和*
或+
$
字符串结束
看到一个regex demo.
要匹配不带点的示例,您可以将重复组的加号更改为星号:
^\d+(?:\.\d+)*(?:\.?[+*])?$
再看一个regex demo。
请使用以下正则表达式验证版本 /^\d+((?:.\d+([+]$){0,1})|(.[*]{1,1})){1,2}$/
^ 字符串开始 \d+ 匹配1+位数字
- (?:.\d+([+]$))+ 重复匹配 1 次或多次。和 1+ 位数字,如果您要添加 + 然后 $ 字符串结尾。 或者
- (?:.?[*])?可选地匹配一个可选的点 * 一次或两次 $ 字符串结尾