0

文字列からデンマークの電話番号を抽出するには、正規表現が必要です。私はこれを得た

var phrase = "Text text text 11 22 33 44 text text.";
phrase = phrase.replace(/^((\(?\+45\)?)?)(\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2})$/, "replace phone number");
alert(phrase);

このリンクを見つけましたが、機能しません: http ://www.dbsoftlab.com/etl-tools/regular-expressions/is-danish-phone-number.html

4

3 に答える 3

1

使用しようとしている式では、電話番号が文字列内の唯一のものである場合にのみ一致します。これは、^ が文字列の先頭に一致し、$ が末尾に一致するためです。

これは機能するはるかに単純な正規表現だと思います:

/([0-9]{2} ){3}[0-9]{2}/

つまり、textStr.replace(/([0-9]{2} ){3}[0-9]{2}/g,'新しい文字列') と言えます。

ここで確認してください:http: //refiddle.com/gk8

于 2013-01-23T13:55:50.433 に答える
0

問題は^$文字列の最初と最後にそれぞれ一致するとです。数字が文字列の真ん中にあるため、一致しません。それらを削除すると、機能します。

> var phrase = "Text text text 11 22 33 44 text text.";
undefined
> phrase = phrase.replace(/((\(?\+45\)?)?)(\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2})/, " replace phone number");
'Text text text replace phone number text text.'
于 2013-01-23T13:55:23.577 に答える
0

私は一緒に行きます:

/(?:45\s)?(?:\d{2}\s){3}\d{2}/

これにより、以前の正規表現が持っていたオプションの国コードが維持されます。ここでは、効率のために非キャプチャ グループを使用しています。

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions#Using_Special_Characters

于 2013-01-23T14:00:31.983 に答える