用于验证名称和版本的javascript正则表达式
我正在尝试用JavaScript编写一个正则表达式。我需要验证名称和版本,条件如下: 姓名:用于验证名称和版本的javascript正则表达式,javascript,regex,Javascript,Regex,我正在尝试用JavaScript编写一个正则表达式。我需要验证名称和版本,条件如下: 姓名: 只有字母,没有数字和特殊字符 开始或结束处没有尾随空格,单词之间也没有多个空格 最少3个字符,最多50个字符 版本: 格式应为[number].[number].[number] 数字之间只有一个点(1.3..4无效,1.3.4正常) 每个数字可以是1或2位数字,如1.11.26(有效),但不是2.343.23(无效) 名称 正则表达式 ^(?! )((?! )(?! $)[a-zA-Z ]){
- 只有字母,没有数字和特殊字符
- 开始或结束处没有尾随空格,单词之间也没有多个空格
- 最少3个字符,最多50个字符
- 格式应为
[number].[number].[number]
- 数字之间只有一个点(
无效,1.3..4
正常)1.3.4
- 每个数字可以是1或2位数字,如
(有效),但不是1.11.26
(无效)2.343.23
- 名称
正则表达式
^(?! )((?! )(?! $)[a-zA-Z ]){3,50}$
^\d{1,2}\.\d{1,2}\.\d{1,2}$
- 只有字母表,没有数字和特殊字符=>我们使用字符类
[a-zA-Z]
- 开头或结尾没有尾随空格,单词之间也没有多个空格。=>通过“锚定”正则表达式,我们说它应该是线上唯一的东西,它不能部分匹配。对于负前瞻,我们说不允许超过2个空格
^...$ (?! )
- 开始和结束处没有空格=>同样,我们可以使用一些lookaround
^(?! )...(?<! )$
- 最少3个字符,最多50个字符
{3,50}
^(?! )((?! )(?! $)[a-zA-Z ]){3,50}$
^\d{1,2}\.\d{1,2}\.\d{1,2}$
- 格式应为[number].[number].[number]
\d+\.\d+\.\d+
- 数字之间只有一个点(1.3..4无效,1.3.4正常)=>通过指定\d,我们说只允许数字后跟一个点(应该转义,否则它将表示任何字符)
- 每个数字可以是1或2位数字,如1.11.26(有效),但不是2.343.23(无效)
if (/^\d{1,2}\.\d{1,2}\.\d{1,2}$/.test(subject)) {
// Successful match
} else {
// Match attempt failed
}
名称
正则表达式
^(?! )((?! )(?! $)[a-zA-Z ]){3,50}$
^\d{1,2}\.\d{1,2}\.\d{1,2}$
- 只有字母表,没有数字和特殊字符=>我们使用字符类
[a-zA-Z]
- 开头或结尾没有尾随空格,单词之间也没有多个空格。=>通过“锚定”正则表达式,我们说它应该是线上唯一的东西,它不能部分匹配。对于负前瞻,我们说不允许超过2个空格
^...$ (?! )
- 开始和结束处没有空格=>同样,我们可以使用一些lookaround
^(?! )...(?<! )$
- 最少3个字符,最多50个字符
{3,50}
^(?! )((?! )(?! $)[a-zA-Z ]){3,50}$
^\d{1,2}\.\d{1,2}\.\d{1,2}$
- 格式应为[number].[number].[number]
\d+\.\d+\.\d+
- 数字之间只有一个点(1.3..4无效,1.3.4正常)=>通过指定\d,我们说只允许数字后跟一个点(应该转义,否则它将表示任何字符)
- 每个数字可以是1或2位数字,如1.11.26(有效),但不是2.343.23(无效)
if (/^\d{1,2}\.\d{1,2}\.\d{1,2}$/.test(subject)) {
// Successful match
} else {
// Match attempt failed
}
没有表现出任何努力。所以,这不是一个免费的代码编写服务(尽管显然有些人认为它是!)你好,用户,欢迎使用Stack Overflow!显然,我们希望看到您在解决此问题时失败的尝试,以及一些有效/无效的示例字符串-这肯定有助于获得一个好的答案。如果你在Stack Overflow有过积极的体验,请告诉你所有的朋友。没有付出任何努力。所以,这不是一个免费的代码编写服务(尽管显然有些人认为它是!)你好,用户,欢迎使用Stack Overflow!显然,我们希望看到您在解决此问题时失败的尝试,以及一些有效/无效的示例字符串-这肯定有助于获得一个好的答案。如果您在Stack Overflow有过积极的体验,请告诉你所有的朋友。嘿,事实上我是新来的正则表达式。我不需要多个有效的空间,但它不接受像rahul malhotra这样的单个空间。那么正则表达式中应该有什么变化呢?@sanjay更新了我的答案,添加了一些lookaheadbutw。你对正则表达式是新来的,没关系,但在问题中提到这一点。很少有人不知道如何开始,但这是一个非常高级的问题,有可能。嘿..更新的正则表达式在开始或结束时接受尾随空格。我的要求是:有效:“Rahul”、“Rahul Sharma”、“Rahul Kumar Sharma”无效:“Manoj”、“Manoj”、“Manoj Modi”@sanjay更新我的答案。一些lookaround解决了这个问题。嘿,实际上我是新来的正则表达式。我不需要多个有效的空间,但它甚至不接受像rahul malhotra这样的单个空间。那么正则表达式中应该有什么变化呢?@sanjay更新了我的答案,添加了一些lookaheadbuth。顺便说一句,你对正则表达式是新手,但在问题本身中提到这一点。很少有人不知道如何开始,但这是一个非常高级的问题,有可能。嘿..更新的正则表达式在开始或结束时接受尾随空格。我的要求是:有效:“Rahul”、“Rahul Sharma”、“Rahul Kumar Sharma”无效:“Manoj”、“Manoj”、“Manoj Modi”@sanjay更新我的答案。一些旁观者解决了这个问题。