所以 - 对于注册表单(用户名字段)我想允许字母字符,数字,下划线和短划线。问题是 - >用户应该能够使用他们的原生字母,而不仅仅是拉丁语。所以应该允许西里尔字母和其他字符....但不要像:$%^ *()等字符。
<?php
$test = 'dshfjfj_-7685гдежзи $@@@@@';
echo preg_match('/^[\pL\pN_-]+/u', $test);
?>
^高于正则表达式结果为真,即使我不想允许@
- &gt;我究竟做错了什么?
答案 0 :(得分:3)
使用行尾锚$
也可以避免匹配不需要的输入:
preg_match('/^[\p{L}\p{N}_-]+$/u', $test);