2017-07-28 8 views
0

私はどのように正規表現機能を使ってテキストエリア内のデータをフィルタリングして、今すぐに成功することができないか探してきました。以下は、英国の電話番号をフィルタリングするために使用したい正規表現です。正規表現の数値フィルタリング

(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))? 

フィドル:https://jsfiddle.net/qdypo04y/

私はボタンが、それは正規表現を満たしていない行を削除しますクリックされたときの結果を達成したいですか?あるいは、英国の電話番号ではない値を削除します。

ガイダンスをいただければ幸いです。

+0

あなたが番号を入力するテキストエリアを使用しない理由の質問はありますか?入力要素を使用するほうが適切です。 –

+0

英国の数値フォーマットとは何ですか?私が理解する限り、接頭辞は '+ 44 'で10桁で、これはsapcesとおそらくは' - 'で任意に区切ることができます。 '0'で始まる数字は英国の数字であると仮定しているようです。探しているフォーマットを定義できますか? – Serge

+0

@ Serge正規表現は[here](https://stackoverflow.com/questions/11518035/regular-expression-for-uk-based-and-only-numeric-phone-number-in-cakephp)から来ると仮定します – gaetanoM

答えて

0

textarea要素の使用離れて、あなたの問題は次のとおりです。

  • はどのようにあなたのボタンにイベントリスナーをクリックして添付する(参照:querySelectoraddEventListener)テキストエリアの内容を取得し、行に分割する方法
  • (参照:textContentプラスsplitjoin
  • 最終的にどのように正規表現を使用します。test
を参照してください。

例は次のとおりです。

document.querySelector('button').addEventListener('click', function(e) { 
 
    var txtArea = document.querySelector('textarea[rows="4"][cols="50"]'); 
 
    var re = /(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?/; 
 
    var txtArr = txtArea.textContent.split('\n'); 
 
    txtArr.forEach(function(ele, idx) { 
 
     txtArr[idx] = ele + ' test result is: ' + re.test(ele); 
 
    }); 
 
    txtArea.textContent = txtArr.join('\n'); 
 
});
<textarea rows="4" cols="50"> 
 
+447222555555 
 
0800 042 0213 
 
2017/07/14 
 
2017/07/17 
 
2017/07/27 
 
</textarea> 
 
<button>Click me</button>

0
<script> 
function myFunction() { 
    var regexp = /(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?/; 
    var content=$.trim($("textarea").val()).split('\n'); 
    var result=""; 
    for(var i = 0;i < content.length;i++){ 
     if(regexp.test(content[i])){ 
      result=result+content[i]+'\n';   
     } 
    } 
    $("textarea").val(result); 
} 

</script> 

がテキストエリアの値を取るためのjQueryを使用

+0

これは私のソフトウェアでJQueryが必要になりますが、デモを添付することは可能でしょうか?それが表示されるように私はそれを動作させることはできません "]]}" –