2011-12-01 57 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將不會繼續支持。

相關問題