带有一些验证的商业名称的JavaScript正则表达式

时间:2015-06-09 07:59:35

标签: javascript regex

我需要具有以下条件的商业名称的JavaScript正则表达式:

  1. 允许使用数字,空格和以下字符:

    ~ ` ? ! ^ * ¨ ; @ = $ % { } [ ] |  /. < > # “ - ‘
    
  2. 至少应为2个字符,其中一个必须是字母或数字字符

  3. 没有先行或尾随空格
  4. 示例:Test1TaA1M's1'ss!1!

    我试过以下(暂时只使用3个特殊字符进行测试):

    ^(?=(?:[^\A-Za-z0-9]*[\A-Za-z0-9]){2})[~,?,!]*\S+(?: \S+){0,}$
    

    但它不会验证s!1!

1 个答案:

答案 0 :(得分:6)

您可以使用以下内容进行验证:

^(?!\s)(?!.*\s$)(?=.*[a-zA-Z0-9])[a-zA-Z0-9 '~?!]{2,}$

并在[a-zA-Z0-9 '~?!]

中添加您想要允许的所有字符

请参阅DEMO

说明:

  • ^字符串的开头
  • (?!\s) don't start with space
  • 的前瞻性断言
  • (?!.*\s$) don't end with space
  • 的前瞻性断言
  • (?=.*[a-zA-Z0-9]) atleast one alpha or numeric character
  • 的前瞻性断言 我们想要匹配的
  • [a-zA-Z0-9 '~?!]个字符(根据需要自定义)
  • {2,}匹配前面定义的类
  • 中的最小2和最大任意数量的字符
  • $字符串结尾