Javascript 正则表达式-使用点验证字母符号(强制)
需要您的帮助来修改下面的正则表达式 要求 应将给定字符串与字母符号和点(.)匹配。。请注意,点(.)是强制性的,不应出现在第一个或最后一个。数字是非必填项 有效输入Javascript 正则表达式-使用点验证字母符号(强制),javascript,regex,Javascript,Regex,需要您的帮助来修改下面的正则表达式 要求 应将给定字符串与字母符号和点(.)匹配。。请注意,点(.)是强制性的,不应出现在第一个或最后一个。数字是非必填项 有效输入 abc.xyz abc123.xyz123 a、 一, 无效值 .abc.xyz 123.123 abcd a1.s.d.3.4 asd123 a2…b2 注意:第一个字符应该是字母表,并且只显示一个点。 我的正则表达式(不适用于所有场景) 谢谢你的意见 感谢所有提供答案的用户。不幸的是,我只能将其中一个设置为“已接受”。您可以尝试
感谢所有提供答案的用户。不幸的是,我只能将其中一个设置为“已接受”。您可以尝试下面的正则表达式
^(?:[a-zA-Z]+(?:[0-9]+)?)\.(?:[a-zA-Z0-9]+)+$
这只允许一个点字符。如果点不能排在最后(而且如果(我怀疑)
a…b也无效),您可以使用
/^[a-z][a-z0-9]*(?:\.[a-z0-9]+)+$/i
说明:
^#字符串的开头
[a-z]#匹配一个ASCII字母
[a-z0-9]*#匹配零个或多个ASCII字母/数字
(?:#组建一个团队:
\.#以点开头
[a-z0-9]+#并以一个或多个ASCII字母/数字继续
)+#将该组匹配一次或多次
$#直到字符串结束
这适用于一个或多个点。如果只允许一个点,则正则表达式很简单:
/^[a-z][a-z0-9]*\.[a-z0-9]+$/i
此正则表达式适用于您:
/^^[a-z](?=[^.]*\.[^.]*$)[a-z0-9.]*[a-z0-9]$/gmi
正则表达式不适用于abc123.asd
。谢谢您的输入。@Java\u用户:它适用于该字符串…不确定您的问题在哪里。请检查以前的答案、注释和我更新的问题。@Java\u用户:从您最初的问题来看,似乎允许多个点。如果它们不是,正则表达式就是微不足道的。不需要环顾四周的断言或其他复杂的东西。谢谢Tim。我来看看。如果我最初的问题有点让人困惑,我很抱歉。asd…asd
不是我想要的有效输入。根据什么规则它是无效的?是否要阻止超过1个点?现在检查编辑的答案。它现在与asd…asd不匹配。是的,我已经处理好了。您可以看到更新的答案和新的演示链接。奇怪的是,您接受的答案违反了您自己的规则,并且与输入匹配,如a.1.2.3
它不应该与此匹配。请查看@anubhava的答案评论。为什么您不想匹配a1.s.d.3.4
和a.1
?编辑了我的问题。我只需要一个点的实例。只需将点放在第二个非捕获组之外。再见,谢谢。事实上,我不想投票赞成错误的答案。
/^^[a-z](?=[^.]*\.[^.]*$)[a-z0-9.]*[a-z0-9]$/gmi