0

div にいくつかの項目のリストを表示しています。この形式の文字列データを使用できます。例: 12H-912

ここで、12(最初の 2 桁) は年の下 2 文字を表します (例: 2012 の場合は 12 になります)。「H」は月を表します (jan の場合は「A」、feb の場合は「B」..Aug - " H")。また、「-」の後の 9 は月の日を表します。そして12(最後の2文字は、私が生成した主キーを表します。これは、2つだけでなく、2または1223または232323..のいずれかの文字にすることができます..)。

今jqueryで、この形式の文字列を見つけたいと思っています。それを、関数が呼び出されたハイパーリンクとして作成したいと考えています。誰でも解決策を見つけるのを手伝ってくれませんか。

4

2 に答える 2

0

作業データ:

<div>this is a div with 12H-912</div>
<table>
    <tr><td>7H-9123123</td></tr>
    <tr><td>08A-912234</td></tr>    
    <tr><td>08132A-912234</td></tr>    
</table>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

Javascript:

$('body').ready(function(){
    $('div').each(function(){
        var html = $(this).html();
        if (html.match(/[0-9]{2}[A-H]{1}-[0-9]+/g)) {
            $(this).html(html.replace(/([0-9]{2}[A-H]{1}-[0-9]+)/g, '"$1"')); 
        }
    });

    // easier and safer when in a td (alone)
    $('td').each(function(){
        var html = $(this).html();
        if (html.match(/^[0-9]{2}[A-H]{1}-[0-9]+$/g)) {
            $(this).html(html.replace(/([0-9]{2}[A-H]{1}-[0-9]+)/g, '"$1"'));         
        }
    });
});​​​​​

出力:

this is a div with "12H-912"
7H-9123123
"08A-912234"
08132A-912234

私はあなたにhypperlinkを解決させます。ここでそれをいじることができます:http://jsfiddle.net/fCJJb/

于 2012-08-09T11:35:33.890 に答える
0

次の正規表現を使用して、正確な一致を見つけることができます

"12H-912".match(/^\d{2}[A-Z]\-\w+$/)
于 2012-08-09T11:11:57.967 に答える