2010-06-21 80 views
2

我已經寫了這個計算單詞的JavaScript,但我無法將此JavaScript代碼轉換爲PHP正則表達式。任何人都可以幫助我下面的代碼?Javascript正則表達式到PHP

return str.replace(/\&\w+;/ig,"") 
     .replace(/lt;/g, "<") 
     .replace(/gt;/g, ">") 
     .replace(/(<([^>]+)>)/ig,"") 
     .replace(/^[^A-Za-z0-9-\']+/gi, "") 
     .replace(/[^A-Za-z0-9-\']+/gi, " ") 
     .split(" ") 
     .length - 1; 

回答

1

PHP沒有一個g標誌,最接近的當量使用/is與替換$limit設置爲null(全部)。

之後,只是爆炸它「」。

例如

$search = array 
(
    '/\&\w+;/is', 
    '/lt;/s', 
    '/gt;/s', 
    '/(<([^>]+)>)/is', 
    '/^[^A-Za-z0-9-\\\']+/is', 
    '/[^A-Za-z0-9-\\\']+/is' 
); 

$replacements = array 
(
    '', 
    '<', 
    '>', 
    '', 
    '', 
    '', 
); 

$input = preg_replace($search, $replacements, $input); 
$words = explode(' ', $input); 
$wordCount = count($words) - 1; 

這很晚了,我沒有仔細檢查過。希望能幫助到你。


編輯:請小心地轉義反斜線和單引號。

+0

因爲你的「關於我」文本,我會提高你的答案,但我不認爲這是公平的。儘管如此,這種方式太晚了(我認爲我們生活在同一個時區),所以我現在不打算檢查你的答案。哦,歡迎來到SO! – 2010-06-22 00:40:24

+0

優秀!!!!完美工作!只要給他人留言,最後的替換引號中就有空格。 – Maximus 2010-06-25 14:14:54