【发布时间】:2012-09-03 10:53:03
【问题描述】:
我的问题很难用文字来描述,我举个例子试试:
str = '<p>lorem ipsum <xyz@abc.com> donor sit <br></p>';
我需要删除除<xyz@abc.com>
我们如何在 javascript 和 PHP 中进行操作?
我的 PHP 解决方案:
class test {
public function keepMailAddresses($text){
$callBack = array($this,'_keepMailAddresses');
return preg_replace_callback('/(<)([^0-9][a-zA-Z0-9_]*([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4})(>)/i', $callBack, $text);
}
private function _keepMailAddresses($matches){
return '<'.$matches[2].'>';
}
}
$obj = new test();
echo $obj->keepMailAddresses('<p>lorem ipsum <xyz@abc.com> donor sit <br></p>');
【问题讨论】:
-
这是无效标记。电子邮件地址周围的
<>应该是&gt;和&lt;,或者,如果这是XHTML,P 文本应该是CDATA 部分。现在电子邮件的方式是创建一个无效元素。 -
@Gordon 我完全同意你的看法,我需要将 转换为 >和 <只有当它是一个电子邮件地址时,其他大小写标签才应该被条带化。
-
@WebolizeR 不,您应该已经将尖括号作为实体插入...
-
案例非常非常复杂,正因为如此,我需要做这样的事情,10年的代码,糟糕的逻辑等等。
-
你的php函数工作gr8,你现在有什么问题?在 javascript 中做同样的事情?