gpt4 book ai didi

php - 将检查来自表单的有效输入的正则表达式

转载 作者:行者123 更新时间:2023-12-04 15:32:30 25 4
gpt4 key购买 nike

我正在编辑一个现有项目,并报告了一个错误,如果数字在输入中排在第一位,系统将不接受,例如 99% Creative。但是,如果您输入 Creative 99%,系统会接受它并将其保存在数据库中。

我检查了现有的代码,发现他们在 preg_match 中使用了这个表达式 /^[\p{L}]+/u。我在谷歌上搜索了一下,发现可以使用\w,但我的学长不接受我的回答。他说,这是 Not Acceptable 。这会带来一些问题。

请检查下面的脚本,这是我使用的脚本:

$category= trim($_POST['category']);
if(preg_match('/\W/', $category)){
$error='Invalid Input';
}

他让我测试它,使用一些 unicode 字符,如果它能接受阿拉伯语文本,混合(字母数字 + 阿拉伯语)。一切正常,所以这意味着它很好,但他仍然不接受。他让我制定另一个正则表达式。

你知道我该怎么做吗?我可以使用什么表达方式。我真的不明白为什么\w 是 Not Acceptable 。

最佳答案

The PHP manual on PCRE escape sequences表示在 PCRE 中,\w 匹配的字符取决于语言环境(\W\w 的否定)。

这在全局环境中是 Not Acceptable ,因为您不知道所使用的服务器语言环境。最后一次 setlocale() 调用是什么?网站托管在美国、法国还是中国?你永远不会知道。今天可能适用的东西,明天可能不适用。用户在变,网站也在变。

例如,您上级的服务器也可能使用与您的服务器不同的语言环境。因此,他们可能会说对某些不在当前语言环境中的字符不起作用,这可能是对的。

这就是为什么他们不能接受您的解决方案。您需要使用 Unicode character properties相反。

关于php - 将检查来自表单的有效输入的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9148623/

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