【问题标题】:Change this regex to include numbers with hyphen更改此正则表达式以包含带连字符的数字
【发布时间】:2013-03-20 14:39:36
【问题描述】:

我有一个正则表达式来排除所有特殊字符 - /^\s*[a-zA-Z0-9,\s]+\s*$/ 如何更改此正则表达式以排除除连字符以外的特殊字符,以便用户可以输入带有破折号的数字

【问题讨论】:

    标签: regex


    【解决方案1】:

    只需在你的集合中添加破折号:

    /^\s*[a-zA-Z0-9,\s-]+\s*$/
    

    你可以稍微优化一下:

    /^\s*[A-Za-z\d,\s-]+\s*$/
    

    \d - 表示所有数字

    @MikeM,你是对的。完毕! 正如@MikeM 所注意到的,将 A-z 改回 A-Za-z。

    【讨论】:

    • @MikeM,让我检查一下。 brb
    • @MikeM,不,你错了,A-z 还可以。 $s = '11-31 ABCabcZz##@@@12-93!!;{}02'; echo preg_replace('|[^A-z\d,\s-]|siU','',$s); // 输出 11-31 ABCabcZz12-9302
    • 试试/[A-z]/.test('_')A-z是从Az的ASCII范围内的所有字符,所以它包括[^等。
    • 另外,这看起来像是在起作用 ----> /^\s*[a-zA-Z0-9!$*\-,\s]+\s*$ /
    猜你喜欢
    • 2020-07-03
    • 2018-07-25
    • 1970-01-01
    • 2011-04-11
    相关资源
    最近更新 更多