我正在尝试创建一个正则表达式来检查自由形式的民俗系统提交的标签的值。这就是我现在所拥有的。
if (!preg_match('/([^-\\a-zA-Z0-9._@\'])+/',$proposedtag)) {
//true, good
return true;
} else {
//false, bad characters
return false;
}
我想允许:连字符、反斜杠、正斜杠、az、AZ、0-9、句点、下划线、at 符号和单引号,并禁止所有其他。
我很确定否定字符类是继续进行此操作的方法...
但是我上面的代码似乎允许其他字符(例如 +),我不知道为什么。另外作为旁注,我不确定我是否确保我不会无意中允许 SQL 注入。有小费吗?