0

現在、doc.body.innerHTML を検索し、常に同じ形式の数値のセット文字列を検索する関数を JavaScript で作成しようとしています。

元。00000000123456

この番号が見つかったら、8 つの 0 を差し引いて 123456 だけに置き換えたいと思います。最後の 6 桁だけになったら、特定のページでそれらの数字を検索するためのハイパーリンクにしたいと思います。

ただし、コーディングが簡単な場合は、ハイパーリンク自体で最後の 6 桁のみを検索できる限り、ハイパーリンクを作成する前に 8 つの 0 を削除することはそれほど重要ではありません。

私はいくつかの異なる方法を試しましたが、どれもうまくいきません。私はこれにかなり慣れていないので、簡単にしてください.


編集 :

例:ページには次のものが含まれています

名前:ジョン・ジョンソン アカウント番号:00000000123456 電子メール:john@johnson.com

アカウント番号を見つけて、最初の 0 を削除し、00000000123456 を 123456 に置き換える必要があります。123456 はハイパーリンクになり、そのアカウント ページに移動します。

4

3 に答える 3

0

これはそれを行う1つの方法かもしれません:

var body = document.getElementsByTagName('body')[0];

// search through each node in the DOM starting from the body element
(function search(child){
    for(var i = 0;i < child.childNodes.length;i++){
        search(child.childNodes[i]);
    }
    // if it's a text node
    if(child.nodeType === 3){
        // if it matches the number replace with a link
        var result =   /^(:?0{8}(\d+))/.exec(child.textContent);      
        if(result){
            link = document.createElement('a');
            // change this to be the href you want
            link.href = result[2];
            // change this to be the text you want
            link.innerHTML = 'search '+result[2];
            child.parentNode.replaceChild(link, child);
        }
    }
})(body);

デモ: http://jsfiddle.net/louisbros/6a8fA/

于 2013-04-18T21:14:40.780 に答える