2017-07-28 4 views
0

Ich habe nach einer Möglichkeit gesucht, wie ich Daten in Textarea mit Regex-Funktion für eine ganze Weile jetzt ohne Erfolg filtern konnte. Unten ist der Regex, den ich verwenden möchte, um britische Telefonnummern zu filtern.Regex Nummer Filterung von Textarea

(((\+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}))? 

Fiddle:https://jsfiddle.net/qdypo04y/

Ich möchte das Ergebnis erzielen, wenn die Schaltfläche geklickt wird es Linien entfernen wird, die die Regex nicht erfüllen? Alternativ könnten Werte entfernt werden, die keine britischen Telefonnummern sind.

Jede Anleitung wäre willkommen.

+0

die Frage zu nehmen ist, warum Sie ein Textfeld verwenden, um eine Nummer einzugeben? Die Verwendung eines Eingabeelements ist geeigneter. –

+0

Was ist ein britisches Zahlenformat? Soweit ich verstehe, ist es nur '+ 44' Präfix und 10 Ziffern, die beliebig durch Sapces und wahrscheinlich '-' getrennt sein könnte. Sie scheinen davon auszugehen, dass mit "0" beginnende Zahlen auch britische Zahlen sind. Können Sie die gewünschten Formate definieren? – Serge

+0

@Serge Ich nehme an, die Regex kommt von [hier] (https://stackoverflow.com/questions/11518035/regular-expression-for-uk-based-and-only-numeric-phone-number-in-cakephp) – gaetanoM

Antwort

0

Neben der Verwendung von Textarea-Element Ihr Problem ist:

Ein Beispiel ist:

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> 

verwendet JQuery den Wert von TextArea-

+0

Ich würde JQuery in meiner Software dafür benötigen, ist es möglich, dass Sie auch eine Demo anhängen könnten? weil ich es nicht zur Arbeit bringen kann, da es "]]}" –