TEL:400-8793-956
当前位置:程序、服务器

使用 preg_match() 验证表单输入每次都返回 0

提问者: 近期获赞: 浏览人数: 发布时间:2022-02-14 09:31:31

 问:我正在验证标记为“标签”的表单字段的表单输入,用户在其中输入描述上传图像的标签。在这个验证之后,我 preg_replace() 任何带逗号的空格,这样这个输入就是 csv 输入。

 
无论输入如何,preg_match() 都会返回 0。我做错了什么?
 
我希望我的标签包括:
 
以任何字母(无论大小写)和/或数字或空格开头
包含任何字母、数字、空格、逗号和连字符
以任何字母、数字、空格或逗号结尾
这是我的正则表达式字符串:
 
$regex = '/^[ ,][a-zA-Z0-9]+(?:[ ,-]+[a-zA-Z0-9])[ ,]$/';
这是我的 preg_match 语句包含在 if 语句中 else 退出程序(当 preg_match 返回 0 时)。
 
preg_match($regex, $_POST['tags']) == 1;
以下是一些示例输入以及它们是否应该有效。
 
绿色轮廓、三角形、2d*% => 无效
绿色轮廓,三角形,2d => 有效
绿色轮廓三角形 2d => 有效
我已经在Regex101尝试了实时正则表达式工具,但我不知道出了什么问题。
 
 
答:在那种情况下,我认为这样的事情应该有效:
 
/^[\w, \-]+$/g
注意:我删除了\d我之前添加的,因为它已经包含在\w.
上一篇: 删除 elementor html 标签,但将文本留在标签内
下一篇: 通过 cURL 发布 json