【发布时间】:2010-12-17 10:35:10
【问题描述】:
我正在使用正则表达式在通用字符串中查找链接并突出显示该文本(下划线、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;
}
我将所有文本替换为“链接”。我想要与表达式匹配的相同文本,而不是“链接”。我试过了
text=text.replace(pattern, "<u>"+linkRegEx.exec(text)[0]+"</u>");
但我遇到了麻烦。我不认为我完全理解正则表达式和替换方法的工作原理。
【问题讨论】:
标签: regex flash actionscript-3 string