首页 > 解决方案 > 避免字母数字字符串的前导和尾随空格

问题描述

我正在尝试验证字符串是否只有以下内容

1.数字(0-9)有效
2. 字母(AZ、az)有效
3. 不允许有前导空格
4. 不允许有尾随空格
5. 可以在字段文本中输入空格(前导或尾随空格之外)
6. 允许使用以下特殊字符:
    1. 下划线(_)
    2. 连字符 (-)
    3.逗号(,)
    4. 点 (.)

以下对我有用,除了空格

/^[A-Za-z0-9][A-Za-z0-9\_\.\-\,\s]*$/g

如何避免具有相同正则表达式模式的前导空格尾随空格?

标签: regexwhitespace

解决方案


如果两者之间可以有连续的空白字符,则可以使用可选部分,其中第二个字符类重复 0+ 次,以相同的字符类结尾,不包括\s

^[A-Za-z0-9](?:[A-Za-z0-9_.,\s-]*[A-Za-z0-9_.,-])?$

正则表达式演示

\w用于匹配单词字符:

^[A-Za-z0-9](?:[\w.,\s-]*[\w.,-])?$

请注意,\s这也可能匹配换行符。


推荐阅读