我需要 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!
。
最佳答案
您可以使用以下内容进行验证:
^(?!\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 个字符和最多任意数量的字符 -
$
字符串末尾
关于带有一些验证的企业名称的 JavaScript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30726203/