Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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 First和surn name regex_Javascript_Regex - Fatal编程技术网

Javascript First和surn name regex

Javascript First和surn name regex,javascript,regex,Javascript,Regex,我在我的网站上写了一个正则表达式来匹配注册表格的名/姓。 这些要求是: 最多44个字符 -或'是可以接受的 名称中可以有一个空格 Unicode不是必需的 有没有办法让我的表情更简短 ^[a-zA-Z]{2,12}['-]?[a-zA-Z]{1,10}\s?[a-zA-Z]{2,12}['-]?[a-zA-Z]{1,10}$ 名称字段的限制是否太多?首先,对于正则表达式,响应最多为47个字符:12+1+10+1+12+1+10 我认为对你来说最好的方法是允许44个字符来自字母、昏迷、负号或

我在我的网站上写了一个正则表达式来匹配注册表格的名/姓。 这些要求是:

  • 最多44个字符
  • -
    '
    是可以接受的
  • 名称中可以有一个空格
  • Unicode不是必需的
有没有办法让我的表情更简短

^[a-zA-Z]{2,12}['-]?[a-zA-Z]{1,10}\s?[a-zA-Z]{2,12}['-]?[a-zA-Z]{1,10}$

名称字段的限制是否太多?

首先,对于正则表达式,响应最多为47个字符:12+1+10+1+12+1+10

我认为对你来说最好的方法是允许44个字符来自字母、昏迷、负号或空白

您可以强制第一个字符为字母:

^[a-zA-Z][a-zA-Z\-'\s]{0,43}$

首先,对于正则表达式,响应最多为47个字符:12+1+10+1+12+1+10

我认为对你来说最好的方法是允许44个字符来自字母、昏迷、负号或空白

您可以强制第一个字符为字母:

^[a-zA-Z][a-zA-Z\-'\s]{0,43}$

以下是您的代码可能遗漏的名称:

Jo Blow                  not passed
Hyoung Kyoung Wu         not passed
Mike O'Neal              not passed
d'Are to Beaware         not passed
O Henry Smith            not passed
Mathais d'Arras          not passed
Martin Luther King Jr    not passed
George De FunkMaster     not passed
Kurtis B-Ball Basketball not passed
Ahmad el Jeffe           not passed
An Ni                    not passed
你可以试试这个,它可以处理几乎所有的名字

^[^- '](?=(?![A-Z]?[A-Z]))(?=(?![a-z]+[A-Z]))(?=(?!.*[A-Z][A-Z]))(?=(?!.*[- '][- ']))[A-Za-z- ']{2,}$

以下是您的代码可能遗漏的名称:

Jo Blow                  not passed
Hyoung Kyoung Wu         not passed
Mike O'Neal              not passed
d'Are to Beaware         not passed
O Henry Smith            not passed
Mathais d'Arras          not passed
Martin Luther King Jr    not passed
George De FunkMaster     not passed
Kurtis B-Ball Basketball not passed
Ahmad el Jeffe           not passed
An Ni                    not passed
你可以试试这个,它可以处理几乎所有的名字

^[^- '](?=(?![A-Z]?[A-Z]))(?=(?![a-z]+[A-Z]))(?=(?!.*[A-Z][A-Z]))(?=(?!.*[- '][- ']))[A-Za-z- ']{2,}$

你的解决方案(或任何解决方案)注定会失败。没有什么比拥有一个“无效”的真名更烦人的了。简单的回答是:不要尝试有可能失败的例子吗?我感觉我涵盖了大多数情况。在您的要求中,您声明“名称中的一个空格是可以接受的”。我的名字是“PeeHaa von Trappenhauss Kraftwagen bis Glühwein”,我的名字是Al Salam Bin Laden,或者AlbertÅberg?究竟为什么要限制用户名?检查“有效”名称和阻止SQL注入是两个截然不同的问题。原则上,这个名字没有问题。理想情况下,您应该能够接受它作为一个名称,而不将其视为SQL。您的解决方案(或任何解决方案)注定会失败。没有什么比拥有一个“无效”的真名更烦人的了。简单的回答是:不要尝试有可能失败的例子吗?我感觉我涵盖了大多数情况。在您的要求中,您声明“名称中的一个空格是可以接受的”。我的名字是“PeeHaa von Trappenhauss Kraftwagen bis Glühwein”,我的名字是Al Salam Bin Laden,或者AlbertÅberg?究竟为什么要限制用户名?检查“有效”名称和阻止SQL注入是两个截然不同的问题。原则上,这个名字没有问题。理想情况下,您应该能够接受它作为一个名称,而不将其视为SQL。。我买了——多少钱?;)谢谢第一个字母不应该总是大写吗?没有像冯这样的名字。。。德,正如基思·汤普森所说,你所有关于名字的概念都是错误的…我更喜欢你的正则表达式而不是我的。。我买了——多少钱?;)谢谢第一个字母不应该总是大写吗?没有像冯这样的名字。。。德,正如基思·汤普森所说,你所有关于名字的概念都是错误的。。。