新手在这里:)AS2多字符串替换
首先我AS2代码:
txt.html=true;
txt.htmlText="This is an example: www.sample.com is not www.othersample.com";
var sampleText:String=findUrl(txt.text);
trace(sampleText);
function findUrl(str){
var rawURL:Array = new Array();
rawURL = str.split(' ');
for(var i=0; i<rawURL.length; i++) {
if(rawURL[i].indexOf("http://") != -1 or rawURL[i].indexOf("www.") != -1) {
return (str.replace(rawURL[i], "<a href='"+rawURL[i]+"' target='_blank'><u><font color='#666666'>"+rawURL[i]+"</font></u></a>"));
}
}
}
输出:
This is an example: <a href='www.sample.com' target='_blank'><u><font color='#666666'>www.sample.com</font></u></a> is not www.othersample.com
首先的问题是,为什么我的闪光功能始终仅更换第一网址是什么?
我想要做的是将字符串从Flash输入文本字段由PHP发送到mySQL表。然后,当flash再次加载它时,我的flash文本字段中的所有URL都将可点击。
当然,我可以在PHP中使用的preg_replace作者:
$comments = $_POST['comments'];
$comments = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i", "$1http://$2", $comments);
$comments = preg_replace("/([\w]+:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/i", "<u><A TARGET=\"_blank\" HREF=\"$1\"><font color=\"#666666\">$1</font></A></u>", $comments);
但问题是,这串闪光可编辑的,所以当我把它(编辑)回到PHP,PHP覆盖链接,使他们不可读的闪存(例如):
<u><a target="_blank" href="<u><a target="_blank" href="http://asdasd.asdasd.pl"><font color="#666666">http://asdasd.asdasd.pl</font></a></u>"><font color="#666666"><u><a target="_blank" href="http://asdasd.asdasd.pl"><font color="#666666">http://asdasd.asdasd.pl</font></a></u></font></a></u>
我也可以使用一些PHP函数,它会检查是否从闪存sended数据已经包含可点击的链接的,但如果我需要添加在编辑字符串另一个链接符,preg_replace不是那么火。 ..
有什么办法可以做我需要的吗?
在此先感谢, Artur。
如果应用程序可以在AS3写,你可以复制你的正则表达式,并在你的闪片使用它,否则,问题关于findURL基于循环中的return语句。你是第一次回来,因此它从来没有打过第二次。 – stat
它不能写在AS3中,我的整个项目写在AS2 :( –
mmm ...增加几行代码... 1分钟:P – stat