Javascript 姓名和联系人的正则表达式模式

Javascript 姓名和联系人的正则表达式模式,javascript,java,html,regex,string,Javascript,Java,Html,Regex,String,如何创建接受以下内容的正则表达式模式: 姓名: first name=仅允许字母表最小值为4,最大值为10,但开头不接受空格,第二个名称或中间首字母后面必须有空格 第二个名称=可选,但仅accpets字母表最小值为4,最大值为10,中间首字母后面必须有空格 中间首字母=仅一个字母表字符,后跟点(即“P”) 姓氏=仅允许字母表最小值为4,最大值为10,但不接受后面的空格 示例: 约翰·保罗·塞达 约翰·B·塞达 到目前为止,这是我的模式^[\S\S]{3,21}[A-z0-9]+$,我不知道如何才

如何创建接受以下内容的正则表达式模式:

姓名:

  • first name=仅允许字母表最小值为4,最大值为10,但开头不接受空格,第二个名称或中间首字母后面必须有空格
  • 第二个名称=可选,但仅accpets字母表最小值为4,最大值为10,中间首字母后面必须有空格
  • 中间首字母=仅一个字母表字符,后跟点(即“P”)
  • 姓氏=仅允许字母表最小值为4,最大值为10,但不接受后面的空格
  • 示例:

    约翰·保罗·塞达
    约翰·B·塞达

    到目前为止,这是我的模式
    ^[\S\S]{3,21}[A-z0-9]+$
    ,我不知道如何才能做到这一点

    联系人:

    模式如下:
    (+63)9############

  • 强制性(+63)9##-
  • [0-9](字符应仅为4,后跟破折号(-)
  • [0-9](字符应仅为3)
  • 例如:

    (+63)955-5555-555


    请帮帮我。我不知道怎么做。

    你不应该用正则表达式验证名称,因为名称不是正则的。在人名问题上,没有一种模式是普遍遵循的

    电话号码要简单得多,它们必须遵循单一的模式,而且电话号码可能无效

    因此,一个简单的正则表达式可以满足您的需求:
    ^\(\+63\)9\d{2}-\d{4}-\d{3}$
    \

    模式只匹配
    (+63)9
    +
    2位[0-9]
    +
    -
    +
    4位[0-9]
    +
    -
    +
    3位[0-9]

    名称:

               ┌─ [ ] lowercase      { } 3 to 9 times  ─┐
               │                                        │
               │        ┌─ \x20 spacebar                │
             ┌─┴─┐     ┌┴─┐                           ┌─┴─┐
    ^(?:[A-Z][a-z]{3,9}\x20){1,2}[A-Z]\.\x20[A-Z][a-z]{3,9}$
    │   └─┬─┘              │           │                   │
    │     │                │           └─ \. period        │
    │     │                │                               │
    │     │                └─ (?: ) grouping               │
    │     │                                                │
    │     └─ [ ] uppercase letter        $ end of string ──┘
    │
    └─ ^ beginning of the string
    
    电话号码:

       ┌── \+ plus sign (needs to be escaped by \)
       │
       │           ┌── - minus sign (does not have to be escaped by \)
       │           │
    ^\(\+63\)9\d{2}-\d{4}-\d{3}$
     │     │        │
     │     │        └─ \d digit
     │     │
     │     └─ \) right parenthesis
     │         
     └─ \( left parenthesis
    

    它是什么语言?它是为html(HTML5的模式)名称不规则的要求。人们有奇怪的名字。这样做会让你的用户对奇怪的名字感到不安。@Pescis你建议使用什么模式?我永远不会对名字执行正则表达式验证。姓名可能会受到许多文化因素的影响,限制一个人的姓名输入选项可能会对某些人造成相当大的侮辱,例如姓名中带有“bin”(阿拉伯语中的“之子”)的人或拉丁语中罕见的字符,如hypens,撇号和/或重音符号。你能解释一下这个模式吗?这样以后我就可以重新创建它了?+1很好的解释。欧米茄你能帮我做最后一个图案吗?那我就不提新问题了?我只想把这个
    Day,time
    (即周一,8:00a-5:00p)或者
    a
    或者
    p
    在时间上做一个模式。使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用代码>我尝试了本次代码:(使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用<使用:周一:周一:周一:周一周一周一周一周一周一周一周一周一周一(星期日、周二周二周二周二、周二、周二周二、周二周二、周二周二、周二、周二、周二、周二、周二、周二、周二、周二、周二、周二、周二、周二你这个时代的模式和我做的有什么不同<代码>[1-9]:\d{2}(?:a | a | p | p)-[1-9]:\d{2}(?:a | a | p | p)你能解释一下这个模式吗,这样以后我就可以重新创建它了?那么`(\`你使用了字符串转义字符吗?