我有一个电话号码和字段长度计数器的输入字段。当我计算它的长度时,如何在字段中忽略“ - ”,空格和“()”?
我的意思是,如果输入值看起来像“(099)99-99”,我调用val().length
时的长度应为7,而不是11。
var phoneInput = getElementById("phone");
var counter = getElementById("lengthCounter");
counter.text(phoneInput.val().length);
答案 0 :(得分:1)
尝试使用正则表达式。\D
匹配所有non-digit
字符,g
是global
修饰符,用于正则表达式。Replace
所有非数字空字符串然后计算字符串的长度。
var string = "(099) 99-99";
console.log(string.replace(/\D/g,'').length);
答案 1 :(得分:1)
通过用空字符串替换所有出现的字符,输出的长度就是你要找的。
const value = phoneInput.val();
value.replace(/[\-\(\)]/g, '').length // replace "-", "(", ")" by empty string
const phoneInput = document.querySelector('input');
const value = phoneInput.value;
console.log(
value.replace(/[\-\(\)]/g, '').length
)
<input value="(32)-(123)-(4444)" />
答案 2 :(得分:0)
这将替换任何非空数的数字。
counter.text(phoneInput.val().replace(/[^\d]/g, '').length)
答案 3 :(得分:0)
检查一下!无需编写多行代码。
function count() {
var x = document.getElementById("phonenumber");
var count = x.value.replace(/[^0-9]/g,"").length;
$("#displaycount").text("Number Count "+count);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Enter your Number: <input type="text" placeholder="example (99) 99-999" id="phonenumber" onkeyup="count()">
<br/><br/>
<div id="displaycount"></div>
答案 4 :(得分:0)
将none digit (\D)替换为&#34;&#34;然后计算新字符串的长度。
var phoneNum = "(+84) 122 - 384 - 6471";
var count = phoneNum.replace(/\D/g, "").length;
alert(count);
&#13;