【问题标题】:Alphanumeric regex that supports UTF characters?支持 UTF 字符的字母数字正则表达式?
【发布时间】:2014-03-05 03:33:38
【问题描述】:

所以 - 对于注册表单(用户名字段),我希望允许使用字母字符、数字、下划线和破折号。问题是 -> 用户应该能够使用他们的本地字母,而不仅仅是拉丁语。所以应该允许西里尔字母和其他字符....但不是字符,如:$%^*() 等。

<?php                                                                           
   $test = 'dshfjfj_-7685гдежзи $@@@@@';
   echo preg_match('/^[\pL\pN_-]+/u', $test);
?>

^ 上面的正则表达式结果为真,即使我不想允许@ -> 我做错了什么?

【问题讨论】:

    标签: php regex pcre


    【解决方案1】:

    使用行尾锚$ 也可以避免匹配不需要的输入:

    preg_match('/^[\p{L}\p{N}_-]+$/u', $test);
    

    【讨论】:

    • 是的,我们的正则表达式几乎是正确的,只是这个小但关键的失误。
    • 好吧,先生。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 2013-01-06
    • 2019-11-12
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多