我试图验证这个字符串是否只有以下内容
1. 数字(0-9)有效2. 字母(A-Z,a-z)有效3. 不允许有前导空格4. 不允许有尾部空格5. 可以在字段文本中输入空格(前导空格或尾部空格之外)6. 允许使用以下特殊字符。 1. 下划线(_) 2. 连字符(-) 3. 逗号(,) 4. 点号 (.)
以下是我的工作,除了空格
/^[A-Za-z0-9][A-Za-z0-9\_\.\-\,\s]*$/g
如何避免 前导空格 和 尾部空间 用相同的Regex模式?
如果中间可以有连续的空白字符,你可以使用一个可选的部分,其中有第二个字符类重复0+次,以相同的字符类结束,不包括。\s
^[A-Za-z0-9](?:[A-Za-z0-9_.,\s-]*[A-Za-z0-9_.,-])?$
或使用 \w
来匹配单词字符。
^[A-Za-z0-9](?:[\w.,\s-]*[\w.,-])?$
注意: \s
也有可能匹配一个新行。
的 前导空格 禁得住 (?!\s)
瞻前顾后。
该。尾部空间 禁得住 (?!.*\s$)
瞻前顾后。
将它们组合成你的图案后 ^
:
/^(?!\s)(?!.*\s$)[A-Za-z0-9][A-Za-z0-9\_\.\-\,\s]*$/
看 证明