我使用preg_match
来允许输入中的字母和数字,
if(!preg_match('/^[a-zA-Z0-9]+$/', $file_rename))
{
$error = true;
echo '<error elementid="file_rename" message="FILE - please use alphabets and numbers only" />';
}
如果我想删除任何不是字母表或数字的字母怎么办?
例如,
test_1
至
test 1
或者,
test&2
至
test 2
PHP preg_replace
docs就是您想要的:
$str = preg_replace('/[^a-z0-9]/i', ' ', $str);
注意正则表达式末尾的i
修饰符--它使搜索不区分大小写。如果你不介意下划线,你也可以选择:
$str = preg_replace('/[^'w]/', ' ', $str);
最初,我会使用这个(unicode安全)
$newString = preg_replace('/[^'p{L}'p{N}]/u', ' ', $oldString);
如果你想保留现有的多个空间。。。
$newString = preg_replace('/[^'p{L}'p{N}'s]/u', ' ', $oldString);
如果您想将连续的非字母数字字符压缩到一个空格中,请将其更改为
$newString = preg_replace('/[^'p{L}'p{N}]+/u', ' ', $oldString);
// note the + sign