从textarea过滤正则表达式编号

时间:2017-07-28 13:17:54

标签: javascript jquery 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/

我想在单击按钮时实现结果,它会删除不符合正则表达式的行吗?或者,将删除不是英国电话号码的值。

任何指导都将不胜感激。

2 个答案:

答案 0 :(得分:0)

除了使用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>

答案 1 :(得分:0)

$(this).find(":selected").val(); // Gets the value of the selected option, if the value attribute in the option element is null it will give you the text

$(this).find(":selected").text(); // Gets the text of the selected option

使用JQuery从textarea中获取值