我需要具有以下条件的商业名称的JavaScript正则表达式:
允许使用数字,空格和以下字符:
~ ` ? ! ^ * ¨ ; @ = $ % { } [ ] | /. < > # “ - ‘
至少应为2个字符,其中一个必须是字母或数字字符
示例:Test1
,Ta
,A1
,M's
,1's
,s!
,1!
我试过以下(暂时只使用3个特殊字符进行测试):
^(?=(?:[^\A-Za-z0-9]*[\A-Za-z0-9]){2})[~,?,!]*\S+(?: \S+){0,}$
但它不会验证s!
或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,}
匹配前面定义的类$
字符串结尾