2010-06-21 58 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