加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用as3中的regex替换文本中的所有链接?

发布时间:2020-12-15 19:47:55 所属栏目:百科 来源:网络整理
导读:Possible Duplicate: 07000 我使用正则表达式来查找泛型字符串中的链接并突出显示该文本(下划线,href,任何内容). 这是我到目前为止所拥有的: var linkRegEx:RegExp = new RegExp("(https?://)?(www.)?([a-zA-Z0-9_%]*)b.[a-z]{2,4}(.[a-z]{2})?((/[

Possible Duplicate:
07000

我使用正则表达式来查找泛型字符串中的链接并突出显示该文本(下划线,href,任何内容).

这是我到目前为止所拥有的:

var linkRegEx:RegExp = new RegExp("(https?://)?(www.)?([a-zA-Z0-9_%]*)b.[a-z]{2,4}(.[a-z]{2})?((/[a-zA-Z0-9_%]*)+)?(.[a-z]*)?(:d{1,5})?","g");
var link:String = 'generic links: www.google.com http://www.yahoo.com  stackoverflow.com';
link = addLinks(linkRegEx,link);
textField.htmlText = link;//textField is a TextField I have on stage

function addLinks(pattern:RegExp,text:String):String{
    while((pattern.test(text))!=false){
        text=text.replace(pattern,"<u>link</u>");
    }
    return text;
}

我将所有文本替换为“链接”.我想要使??用与expresion相匹配的相同文本而不是“link”.我试过了

text=text.replace(pattern,"<u>"+linkRegEx.exec(text)[0]+"</u>");

但我遇到了麻烦.我不认为我完全理解正则表达式和替换方法是如何工作的.

解决方法

好的,我已经阅读了 replace()方法的文档.

有两个关键的事情:

>你可以使用$&获取匹配的子字符串.那里有很多方便和怪异的符号.
>更换时使用第二根绳子,否则你会陷入无尽的环状,小黑色的整体会不时地产生.

以下是该函数的正确版本的外观:

function addLinks(pattern:RegExp,text:String):String{
    var result = '';
    while(pattern.test(text)) result = text.replace(pattern,"<font color="#0000dd"><a href="$&">$&</a></font>");
    if(result == '') result+= text;//if there was nothing to replace
    return result;
}

正如Cay所提到的,样式表更适合于造型.
感谢您的投入.

UPDATE

当链接包含#符号时,上面列出的RegEx不起作用.
这是该功能的更新版本:

function addAnchors(text:String):String{
    var result:String = '';
    var pattern:RegExp = /(?<!S)(((f|ht){1}tp[s]?://|(?<!S)www.)[-a-zA-Z0-9@:%_+.~#?&//=]+)/g;
    while(pattern.test(text)) result = text.replace(pattern,"<font color="#0000dd"><a href="$&">$&</a></font>");
    if(result == '') result+= text;//if there was nothing to replace
    return result;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读