0

ページに (000) 000-0-000 と +00 (000) 000-00-00 の 3 行あるので、それらを検索する正規表現を書きました/([\+]?[0-9]+\s)?[\(][0-9]+[\)]?[\s][0-9-]+/が、3 番目の文字列はタグで囲まれて<strong>(0000)</strong><span>00-00-00</span>います。出くわすと3行目?

function PhoneReplace(){
            var src = $('body').html().replace(/([\+]?[0-9]+\s)?[\(][0-9]+[\)]?[\s][0-9-]+/g, '098 907 23 42');
            $('body').html(src);

        };

タグは削除できません。交換する必要があります

4

3 に答える 3

1

既存の正規表現でそのケースを捕まえないでください。代わりに、電話番号式を適用する前に文字列を変更します。つまり、タグを削除します。これを行うには多くの方法があります。たとえば、DOMパーサーを使用する場合、正規表現はそのための最適なツールではない可能性があります。あなたができる

var results = input.replace(/<[^>]+>/g,"").match(myPhoneNumberExpression);

タグのようなものをすべて削除します。

于 2012-10-18T14:40:52.867 に答える
1
var s = '<strong>(0000)</strong><span>00-00-00</span>';
var n = '', result;
var regex = /(\+?\d+)/g;
while ((result = regex.exec(s))) { 
  n += result[1];
} 
document.writeln(n);

このコードはこちらで確認してください。

于 2012-10-18T15:33:00.570 に答える
0

document.body.innerTextまたはを使用document.body.textContentして、HTML のテキスト コンテンツ (タグなし) を取得し、 phone# 正規表現を適用できます。

テキスト コンテンツが役に立たない場合は、Strip HTML from Text JavaScriptで、HTML の文字列からタグを削除するいくつかの (ハックな) 方法を説明しています。

于 2012-10-18T14:43:25.777 に答える