【问题标题】:Allow Apostrophe In Preg Match Validation在预匹配验证中允许撇号
【发布时间】:2013-03-10 15:12:45
【问题描述】:

我想知道是否有人可以帮助我。

我使用以下 preg 匹配表达式作为我的字段验证的一部分。

(!preg_match('/^$|^[A-Za-z0-9 .,;-]{5,60}$/', $address4))

我遇到的问题是,当我将撇号作为我想要允许的字符的一部分时,我无法让它工作。

我已经阅读了许多教程并尝试了以下但没有成功,所以我显然做错了什么:

(!preg_match('/^$|^[A-Za-z0-9 .,;-\']{5,60}$/', $address4)),

(!preg_match('/^$|^[A-Za-z0-9 .,;-\'\]{5,60}$/', $address4))

我只是想知道是否有人可以看看这个并让我知道我哪里出错了。

【问题讨论】:

    标签: php regex validation preg-match


    【解决方案1】:

    正则表达式的字符类中的减号必须始终位于末尾。否则它将被视为一个字符范围。所以尝试切换撇号和减号:

    preg_match('/^$|^[A-Za-z0-9 .,;\'-]{5,60}$/', $address4)
    

    【讨论】:

    • 嗨@nwellnhof,非常感谢您花时间回复我的帖子并提供解决方案。我已经尝试过您发送的代码,不幸的是这不起作用。非常感谢和亲切的问候
    • 尝试将整个模式用引号括起来"(而不是单引号'),然后你可以使用'未转义。这有什么区别吗?真的不应该,但谁知道。没有 ' 或 \' 也能正常工作?当然,你要小心这是一个真正的 ASCII 单引号,而不是一些 MS Smart Quotes 渣滓?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2018-05-20
    • 1970-01-01
    • 2010-11-30
    相关资源
    最近更新 更多