【问题标题】:regex (php pcre) not validating Currency Sign正则表达式(php pcre)不验证货币符号
【发布时间】:2015-07-30 17:19:07
【问题描述】:

我正在使用以下正则表达式来检查输入字段。我想允许所有货币符号:

/^[\w\s\-\#?\!:='\(\)\p{Sc}]+$/

它正在工作 - 除了 符号。

\p{Sc} 表示“匹配所有货币”。 $ 符号是例如工作 - 但 标志被踢出。

我的错误在哪里? 问候。

【问题讨论】:

  • 你的意思是最后: "\p{Sc}\u" ?或者把“\u”放在哪里?我也试过了,它说“警告:preg_match():编译失败:PCRE不支持\L、\l、\N{name}、\U或\u”

标签: php regex validation pcre


【解决方案1】:

使用u 标志启用UTF 模式,以便将模式和输入字符串视为Unicode 字符串(在UTF-8 编码中)。如果没有 u 标志,匹配会在字节上进行,并且不支持 Unicode。

/^[\p{Sc}\w\s#?!:='()-]+$/u

我还删除了不必要的转义 \ 并将 - 放在字符类的末尾以避免转义。

【讨论】:

  • 非常感谢,我在 [...] 括号之间有 \u.. 这就是它不起作用的原因。
猜你喜欢
  • 1970-01-01
  • 2010-10-23
  • 2021-03-16
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多