需要Javascript Regex替换以使用<a ...> </a ...>包装某些单词

时间:2009-09-03 16:15:29

标签: javascript regex replace

我们有一个数据库,每个表名都以WW开头。 我想在网页上显示一个SQL,但是用一个链接包装每个表名。 例如:

"select * from wwx_something where ..."

应转化为:

"select * from <a href='/table/wwx_something/'>wwx_something</a> where ..."

当然,可能有几个表,它不应区分大小写。

我需要一个javascript正则表达式解决方案......我似乎无法让它工作。

1 个答案:

答案 0 :(得分:3)

使用单个replace的解决方案:

var re = /(FROM|JOIN)\s+(WW\S+)/gi;
yourText.replace(re, "$1 <a href='$2'>$2</a>");

请注意,我也暂时支持像“SELECT * FROM wwa JOIN wwb”这样的内容。

评论后添加:是的,您可以使用自定义函数替换以使URL大写:

var re = /(FROM|JOIN)\s+(WW\S+)/gi;
function change(s, p1, p2) {
    return p1 + " <a href='http://whatever/" + p2.toUpperCase() + "'>" + p2 + "</a>";
}
yourText.replace(re, change);
PS:恕我直言,最好在比赛中包含FROM / JOIN,因为这样你就可以更好地了解与表名无关的流浪“ww”......包括一些上下文总是有助于消除歧义。< / p>