gpt4 book ai didi

php - utf-8 的 preg_match 规则

转载 作者:行者123 更新时间:2023-12-02 05:16:58 25 4
gpt4 key购买 nike

对于 full_name 字段我必须使用什么 pregmach 规则?
我希望用户只输入字符而不是 html 或 php 代码值和 3 到 11 个字符之间的空格
我可以使用:

<?php
if (preg_match("%^[A-Za-z0-9-_]{3,10}$%", $_REQUEST['usr'])) {
//do something like
mysql_query('insert into user(name) values(this field)');
//damn what is this for: It does not meet our quality standards.!!!
//i must insert more code? i dont have ! let me go !
}
else{
//do something else!
die('get out !:D');
}
?>

但是这个用户不能输入 UTF-8 字符,比如 "مسیح ارسطوئь"
那么我必须为 UTF-8 使用什么 preg_match 规则?
或者我可以使用其他什么代码,比如 preg_match?
我只希望用户可以插入字符而不是 <>{}[] 或 $%^&*
3 到 10 个字符之间!!!谢谢

最佳答案

这将给出“0”,因为 مسیح ارسطوئь 不只包含 3-10 个字符;

$x = preg_match('~^([\pL]{3,10})$~u', 'مسیح ارسطوئی');
echo $x ? 1 : 0;

但这给出了你的情况的结果;

preg_match('~([\pL]+)~u', 'مسیح ارسطوئی', $m);
print_r($m);

Array
(
[0] => مسیح
[1] => مسیح
)

在此处查看更多详细信息:PHP: Unicode character properties

关于php - utf-8 的 preg_match 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14511866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com