我试图向API提交一些信息,但我得到的错误消息之一是:
字段只能包含:大写字母(A-Z),数字(0-9),全停止符(.)、斜杠(/)、破折号(-)、& &;)和空格
在PHP中使用正则表达式,可以编写规则来替换除错误消息中指定的字符以外的任何字符吗?
我不擅长正则表达式,但我敢打赌这对其他人来说很容易!谢谢你。
我显然可以将整个东西设置为strtoupper(),所以我可以处理第一个位!
最简单的方法是使用preg_replace
。
示例:$str = preg_replace('/[^A-Z'd.'/'-&]+/', '', $str);
解释:
- [^ a - z 'd/-&]+匹配下面列表中不存在的单个字符
- 量词:+在一次到无限次之间,尽可能多的次数,根据需要回馈[贪心]
- a -Z在a和Z之间的单个字符(区分大小写)
- 'd匹配数字[0-9]
- 。
- /匹配字符/字面上
- -匹配字符-字面上
- ,列表中的单个字符&字面意思(区分大小写)