regex - 避免字母数字字符串的前导和尾随空格
问题描述
我正在尝试验证字符串是否只有以下内容
1.数字(0-9)有效 2. 字母(AZ、az)有效 3. 不允许有前导空格 4. 不允许有尾随空格 5. 可以在字段文本中输入空格(前导或尾随空格之外) 6. 允许使用以下特殊字符: 1. 下划线(_) 2. 连字符 (-) 3.逗号(,) 4. 点 (.)
以下对我有用,除了空格
/^[A-Za-z0-9][A-Za-z0-9\_\.\-\,\s]*$/g
如何避免具有相同正则表达式模式的前导空格和尾随空格?
解决方案
如果两者之间可以有连续的空白字符,则可以使用可选部分,其中第二个字符类重复 0+ 次,以相同的字符类结尾,不包括\s
^[A-Za-z0-9](?:[A-Za-z0-9_.,\s-]*[A-Za-z0-9_.,-])?$
或\w
用于匹配单词字符:
^[A-Za-z0-9](?:[\w.,\s-]*[\w.,-])?$
请注意,\s
这也可能匹配换行符。
推荐阅读
- java - 表达式的类型必须是数组类型,但它解析为类名
- mysql - 我想知道高级mongodb聚合
- reactjs - 带有 React Hooks 的摄氏到华氏转换器
- javascript - jQuery - 重置元素的高度不起作用
- python - 根据字典中的键,将列添加到熊猫数据框中,其中包含来自另一个数据框的列的值
- python - 你如何在 tkinter 中将图像适合画布?
- vba - 获取 PowerPoint 可以访问的字体列表并与用户输入进行比较
- c# - 如何在 XSD 中获取 simpleType 的最大长度/模式值
- java - 如何在我的 Java 代码中将调用或方法编写为正则表达式?
- python - 选择部分 Dataframe 以获取视图,而不是副本