【问题标题】:Regex is not working as expected in javascript正则表达式在 javascript 中没有按预期工作
【发布时间】:2014-12-15 09:32:50
【问题描述】:

我为名称验证创建了一个正则表达式,其中只有“_”、“-”、“‘”、“。 “ 允许。

这里是正则表达式:

^[a-zA-Z][a-zA-Z0-9\.\-_']{1,24}$

问题是它的允许名称有@,检查Fiddle demo

var str = "deepak@";
var str2 = "@@";
alert(str.match("^[a-zA-Z][a-zA-Z0-9\.\-_]{1,24}$"));//allowing why?
alert(str2.match("^[a-zA-Z][a-zA-Z0-9\.\-_]{1,24}$"));//not allowing

预期:不应允许具有 @ 的名称。

注意:当我在 https://regex101.com/#javascript 中测试这个正则表达式时,它工作得很好

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    不要忘记在 Javascript 中使用正则表达式分隔符:

    alert(str.match(/^[a-zA-Z][a-zA-Z0-9\.\-_]{1,24}$/));
    

    甚至更好:

    alert(str.match(/^[a-zA-Z][\w'.-]{1,24}$/));
    

    Updated JSFiddle

    【讨论】:

      【解决方案2】:

      我想这会做同样的事情:

      str.match(/^\w{1,24}$/);
      

      定义:

      \w 元字符用于查找单词字符。 单词字符是从 a-z、A-Z、0-9 的字符,包括 _(下划线)字符。

      【讨论】:

      • 您允许在字符串的开头使用数字。
      猜你喜欢
      • 2018-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      相关资源
      最近更新 更多