2016-05-09 15 views
-1

文字列内の数字の間に「 - 」や数字が含まれていない数字のみを抽出するにはどうすればよいでしょうか。例:Extract文字列内に他の数字がある場合にのみ電話番号を返します

私の電話番号は647-871-9067です。 2013年税金。$ 9,846.22。

[647-871-9067]

または

を抽出すべき私の電話番号が6478719067.課税年度2013年$ 9,846.22です。

[6478719067]のみを抽出します。

この

は私が書かれている正規表現ですが、関係なくの電話番号のみをフェッチする正規表現コードの下

\b\s\(?([0-9-*)?]*) 
+1

可能な複製(http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation) – Andrey

+0

@Andrey読みください。もう一度私の全質問。私の問題はあなたが言及したものとは異なります。 – ashhad

+0

これはまったく同じ問題です。電話番号の正規表現です。最初は単純なようです。一般的な正規表現+いくつかの追加のコーナーケースを作成します。より多くの異なるフォーマットを認識する必要がある場合は、よくテストされたライブラリを使用する方が良いでしょう。 1つは[Google](https://github.com/googlei18n/libphonenumber)です。考え方を知るには、この正規表現で '-x \ u2010- \ u2015 \ u2212 \ u30FC \ uFF0D- \ uFF0F \ u00A0 \ u00AD \ u200B \ u2060 \ u3000()\ uFF08 \ uFF09 \ uFF3B \ uFF3D。\\ [\\] /〜\ u2053 \ u223C \ uFF5E'。 – Andrey

答えて

0

電話番号とともに2013を抽出している - 電話番号の間に「」。

var string1 = '647-871-9067. tax year 2013. $9,846.22', 
string2 = '6478719067. tax year 2013. $9,846.22', 
regx = /(\d{3}-?\d{3}-?\d{4})/g; 

string1.match(regx) // will return "647-871-9067" 
string2.match(regx) // will return "6478719067" 
[電話番号の検証のための包括的な正規表現]の
+1

...定義された場所にちょうど10桁の数字と ' - 'しか含まれていない場合... –

+0

制限は使用できません。私は、異なる国の人とそれぞれの人が別の方法で電話番号を挿入しているユーザーを持っています。 – ashhad

+1

@ashhadおそらくいくつかの国では '2013' **は**有効な電話番号です。電話番号のために実施したいルールは何ですか? –

関連する問題