Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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,我需要验证以下格式的建筑名称(长度为1-50) 用于字母数字和指定字符检查的我的正则表达式 /^[a-zA-Z0-9\s\)\(\]\[\._-&]+$/ 它显示了无效的表达式,但当我排除时&它工作正常 /^[a-zA-Z0-9\s\)\(\]\[\._-]+$/ 实际格式 建筑名称应使用字母、数字、下划线、连字符、句号、方括号[]、括号()和符号& 它不应连续以任何特殊字符开始和结束 有效期: 帝国3州与大厦[A] 7.帝国大厦(A) 帝国(州)大学大厦[

我需要验证以下格式的建筑名称(长度为1-50)

用于字母数字和指定字符检查的我的正则表达式

     /^[a-zA-Z0-9\s\)\(\]\[\._-&]+$/
它显示了无效的表达式,但当我排除时&它工作正常

     /^[a-zA-Z0-9\s\)\(\]\[\._-]+$/   
实际格式

  • 建筑名称应使用字母、数字、下划线、连字符、句号、方括号[]、括号()和符号&
  • 它不应连续以任何特殊字符开始和结束
  • 有效期:

  • 帝国3州与大厦[A]
  • 7.帝国大厦(A)
  • 帝国(州)大学大厦[A]12
  • 无效:

  • @#$@$@大厦)
  • ()-建筑2
  • $buildings偶数[0]&

  • 我正在努力争取第二种格式。如何首先和最后检查连续允许的特殊字符。非常感谢您的帮助

    转义
    -
    字符:

    /^(?!\W.+\W$)[a-zA-Z0-9\s\)\(\]\[\._\-&]+$/
    
    在字符类中,
    -
    字符表示一系列字符(例如
    1-9
    )。由于
    &
    的ASCII代码小于
    ,因此正则表达式无法正确解析

    此外,若要检查开头或结尾处是否没有特殊字符,请在前瞻中使用
    \W
    (字母、数字或下划线以外的字符)检查开头和结尾是否都不是“特殊字符”。如果将下划线计算为特殊字符,请使用
    [^a-Za-z0-9]
    而不是
    \W

    var validBuildingName = /^(?!\W.+\W$)[a-zA-Z0-9\s\)\(\]\[\._\-&]+$/;
    validBuildingName.test('(example)'); // false
    validBuildingName.test('(example'); // true
    validBuildingName.test('example)'); // true
    validBuildingName.test('example'); // true
    

    很好用,谢谢。但帝国3州和建筑[A]这对上述内容也无效regex@Sha:对我有效:
    /^(?!\W.+\W$)[a-zA-Z0-9\s\(\]\[\.\u\-&]+$/.test('Empire(State)\u Building[a]')
    。返回
    真的吗?
    ?抱歉。有效。但我用空格Empire3 State&Building[a][]-@Sha:如果你想让空格起作用,只需在字符类中添加一个空格,它就变成了
    [a-zA-Z0-9\s\)\(\]\[\.\u\-&]
    。名称不应该以空格后的连续字符结尾:(你能检查一下这个'building[12])&如何检查regex中的这些测试用例名称[]、&name2、name4()?请提供帮助