2011-12-01 58 views
1

我有一个非常简单的字符串:走出的每一个字符不是一个字母或数字PHP

suhfdgfsdf6z87wrt348rfgrztf873$[{;÷[öw 

和一个非常简单的问题: 我怎么能不(不包括)每个字符不是一个字母或数字在PHP中?

+0

你算作'ö'是一封信吗? (顺便说一句,它*实际上是一封信。) –

+0

是啊'ö'是我的一封信... – Akos

回答

4

这干净也UTF字母。

$r = preg_replace('/[\pL\d]/u', '', $var); 
+2

+1不错的一个!干杯 –

1
// includes underscores 
preg_replace('/[\w]+/', '', $var); 

或者

preg_replace('/[a-zA-Z0-9]+/', '', $var); 

你应该只剩下你的特殊字符,在这之后。

+0

\ b是一个单词字符,与[a-zA-Z0-9_]匹配,所以\ d是不需要,但你仍然需要删除下划线。 –

+0

哦,这是正确的,我忘了它已经包括_numbers_。谢谢! –

+0

其实,我用\ b测试过它,它没有像预期的那样工作(我相信\ b在括号中改变了行为)。我将它改为\ w并且效果更好。 –

1
<?php 

$string = '[email protected]#$%ABCDEFG1234567()*&'; 
echo ereg_replace('[^a-zA-Z0-9]', '', $string) 

?> 

我看到有人已经有了这一点,但他们使用了preg_replace,这是更好,因为ereg_replace将不会继续支持。

相关问题