我需要使用PHP将任何不是字母或数字的内容更改为%20
。
例如:$_POST['name'] = "John_Doe"
或$_POST['name'] = "John-Doe"
将成为John Doe
。
是否有一些正则表达式可以替代任何非字母或数字的正则表达式?
答案 0 :(得分:4)
尝试:
preg_replace('/[^A-Za-z0-9]/', '%20', 'Hello World');
你会得到
"Hello%20World"
答案 1 :(得分:1)
有两种方法可以做到这一点。 1)你可以做一个简单的替换。
preg_replace('/[^a-zA-z0-9]/', '%20', $YourString);
//Which should replace anything other then a-Z or 0-9 with '%20'
文档为here
或者你可以蛮力。通过遍历字符串并检查每个字符以查看它是字母还是数字并用'%20'
替换该字符
第一种方式更简单,但第二种方式是一个很好的练习
答案 2 :(得分:1)
路易斯的答案很好,虽然它可以写得更容易
preg_replace('#\W#', '%20', 'Hello World');
做同样的事情:)并且它更短
\W
代表非单词字符