我正在尝试用JavaScript编写正则表达式。我需要验证名称和版本,具有以下条件:
姓名:
版本:
[number].[number].[number]
1.3..4
无效,1.3.4
没问题)1.11.26
(有效),但不是2.343.23
(无效)答案 0 :(得分:9)
命名强>
正则表达式
^(?! )((?! )(?! $)[a-zA-Z ]){3,50}$
仅限字母,无数字和特殊字符=>我们使用一个字符类
[a-zA-Z]
开头或结尾没有尾随空格,单词之间没有多个空格。 =>通过"锚定"正则表达式我们说它应该是唯一的东西,它不能部分匹配。有了负面的预测,我们说不允许超过2个空格
^...$
(?! )
开头和结尾没有空格=>我们可以再次使用一些外观
^(?! )...(?<! )$
但由于javascript不支持lookbehind,我们必须使用lookahead
(?! $)[a-zA-Z ]
最少3个,最多50个字符。
{3,50}
版本强>
正则表达式
^\d{1,2}\.\d{1,2}\.\d{1,2}$
格式应为[编号]。[编号]。[编号]
\d+\.\d+\.\d+
数字之间只有一个点(1.3..4无效,1.3.4没问题)=&gt;通过指定\ d我们说只允许数字后跟一个点(应该被转义,否则它将意味着任何字符)
每个数字可以是1或2位数,如1.11.26(有效),但不是2.343.23(无效)
\d{1,2}
最后一个正则表达式在javascript
中成为以下内容if (/^\d{1,2}\.\d{1,2}\.\d{1,2}$/.test(subject)) {
// Successful match
} else {
// Match attempt failed
}