gpt4 book ai didi

PHP 正则表达式与号问题

转载 作者:可可西里 更新时间:2023-11-01 01:03:32 25 4
gpt4 key购买 nike

我使用以下正则表达式来验证用户名(注册表单中的输入类型文本),以确保用户名仅包含字母数字字符、点、破折号或下划线。

if (!preg_match('/^[a-zA-Z0-9\.\_-]+$/',$my_name)) {  echo 'no_valid'; }

当我在文本字段中键入例如 % 或 # 或 @ 时,我会正确返回错误消息,指出它不是有效的用户名,并且有效字符 (.-_) 也被接受,所以它似乎工作正常,直到当我输入 & 或 + 时,我就可以输入之前使用 preg_match 排除的任何无效字符。

谁能告诉我为什么会这样,我该如何解决这个问题?

最佳答案

问题出在别处。你的表达是正确的。我用 PHP 测试过。由于它发生在“&”字符上,我的猜测是您的数据在发送前未转换为 URL 安全字符。尝试在 JS 中使用 encodeURI() 函数。

关于PHP 正则表达式与号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16839577/

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