2009-09-03 3 views
2

すべてのテーブル名がWWで始まるデータベースがあります。 WebページにSQLを表示したいが、各テーブル名をリンクでラップする。たとえば :もちろん、いくつかのテーブル、あるかもしれませんJavascript Regexが必要です特定の単語をラップして置換する<a...>

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

、それは大文字と小文字を区別すべきではない:

"select * from wwx_something where ..." 

はに変換されなければなりません。

私はJavaScriptの正規表現の解決策が必要です...私はそれが動作するように見えることはできません。単一replaceを使用して

+1

dupe:http://stackoverflow.com/questions/1216007/surrounding-all-instances-of-and-http-with-a – SilentGhost

答えて

2

ソリューション:

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

ノートなど "WWBを登録しようWWA SELECT * FROM" のようなもののために私も暫定的なサポートという。

コメントの後に追加:はい、あなたは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含める方が良いでしょうテーブル名とは関係のない "ww"というひどい言葉に悩まされました...少しの文脈を含めて、いつもあいまいさを助けます。

+0

はい、これはもっと似ています! (しかし、私はただ1つのグループが必要です、私は(FROM | JOIN)に一致する必要はありません)。 もう1つ.... $ 1のいずれかを小文字に変換できますか? (私は "¥1"が必要だと思っていたため、置換文字列に "$ 1" (生成されたURLのもの) –

関連する問題