[英]Regex number filtering from textarea
我一直在尋找如何使用regex函數過濾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}))?
小提琴: https : //jsfiddle.net/qdypo04y/
我想獲得結果,當單擊按鈕時,它將刪除不符合正則表達式的行? 或者,將刪除不是英國電話號碼的值。
任何指導將不勝感激。
除了使用textarea元素之外,您的問題是:
一個例子是:
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>
<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從textarea獲取值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.