Javascript 帮助与正则表达式-我如何才能使一些网址不跟随?
好的,我制作了这个函数,它可以很好地将大多数URL(如pies.com或www.cakes.com)转换为实际的链接标记Javascript 帮助与正则表达式-我如何才能使一些网址不跟随?,javascript,regex,nofollow,Javascript,Regex,Nofollow,好的,我制作了这个函数,它可以很好地将大多数URL(如pies.com或www.cakes.com)转换为实际的链接标记 function render_hyperlinks($str){ $regex = '/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(com|co\.uk|org(\.uk)?|tv|biz|me)(\/[a-zA-Z0-9\-\._\?&=#\+;]+)*)/ie'; $str = preg
function render_hyperlinks($str){
$regex = '/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(com|co\.uk|org(\.uk)?|tv|biz|me)(\/[a-zA-Z0-9\-\._\?&=#\+;]+)*)/ie';
$str = preg_replace($regex,"'<a href=\"http://www.'.'$3'.'\" target=\"_blank\">'.strtolower('$3').'</a>'", $str);
return $str;
}
如果(包含x){addy y}到我的正则表达式中,是否可以实现这个
这就是所谓的“回溯”吗?也许您正在寻找的是preg\u replace\u回调:
function link($matches)
{
$str_return = '<a href="http://www.'.$matches[3].'" target="_blank"';
if(in_array($matches[3], $no_follow_array))
{
$str_return .= ' no-follow';
}
$str_return .='>'.strtolower($matches[3]).'</a>';
}
$regex = '/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(com|co\.uk|org(\.uk)?|tv|biz|me)(\/[a-zA-Z0-9\-\._\?&=#\+;]+)*)/ie';
$str = preg_replace_callback($regex,'link', $str);
函数链接($matches)
{
$str_return='';
}
$regex='/(http:\/\/)?(www\)([a-zA-Z0-9\-\.]+\.(com | co\.uk | org(\.uk)| tv | biz | me)(\/[a-zA-Z0-9\.\\.&=\+])*)/ie';
$str=preg_replace_回调($regex,'link',$str);
这看起来很棒,但是我在字符方面遇到了问题,似乎preg\u replace\u callback不接受“e”修饰符,所以现在它正在捕获“n”形式的“\n”新行?您能提供一个输入字符串的示例吗?难以构建盲正则表达式:)啊,这是我的错误,我是双重逃离换行符,您的解决方案工作得非常好,同时也感谢Marty的帮助
function link($matches)
{
$str_return = '<a href="http://www.'.$matches[3].'" target="_blank"';
if(in_array($matches[3], $no_follow_array))
{
$str_return .= ' no-follow';
}
$str_return .='>'.strtolower($matches[3]).'</a>';
}
$regex = '/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(com|co\.uk|org(\.uk)?|tv|biz|me)(\/[a-zA-Z0-9\-\._\?&=#\+;]+)*)/ie';
$str = preg_replace_callback($regex,'link', $str);