Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式-使用点验证字母符号(强制)_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式-使用点验证字母符号(强制)

Javascript 正则表达式-使用点验证字母符号(强制),javascript,regex,Javascript,Regex,需要您的帮助来修改下面的正则表达式 要求 应将给定字符串与字母符号和点(.)匹配。。请注意,点(.)是强制性的,不应出现在第一个或最后一个。数字是非必填项 有效输入 abc.xyz abc123.xyz123 a、 一, 无效值 .abc.xyz 123.123 abcd a1.s.d.3.4 asd123 a2…b2 注意:第一个字符应该是字母表,并且只显示一个点。 我的正则表达式(不适用于所有场景) 谢谢你的意见 感谢所有提供答案的用户。不幸的是,我只能将其中一个设置为“已接受”。您可以尝试

需要您的帮助来修改下面的正则表达式

要求 应将给定字符串与字母符号和点(.)匹配。。请注意,点(.)是强制性的,不应出现在第一个或最后一个。数字是必填项

有效输入

  • 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