Javascript正则表达式,在每3和4个字符后添加破折号
以下正则表达式:Javascript正则表达式,在每3和4个字符后添加破折号,javascript,jquery,regex,Javascript,Jquery,Regex,以下正则表达式: x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, "-"); 在每个3字符后添加破折号,这样输入的123456789变成123-456-789。 我正在尝试使用这个正则表达式格式化电话号码。问题出现在第10个字符上。所以输入的1234567890变成1-234-567-890 如何修改上面的正则表达式,将10位字符串转换为123-456-7890。我使用这个正则表达式是因为当用户输入useskeyup事件时会发生这种情况 如果您
x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, "-");
在每个3字符后添加破折号,这样输入的123456789
变成123-456-789
。
我正在尝试使用这个正则表达式格式化电话号码。问题出现在第10个字符上。所以输入的1234567890
变成1-234-567-890
如何修改上面的正则表达式,将10位字符串转换为123-456-7890
。我使用这个正则表达式是因为当用户输入useskeyup事件时会发生这种情况
如果您知道更简单或更好的方法,请帮助我,破折号必须在用户输入时添加。不允许使用其他字符
注意事项:
您是否需要对所有内容都使用正则表达式,或者类似的内容也可以帮助您解决问题
function convertToValidPhoneNumber(text) {
var result = [];
text = text.replace(/[^\d]/g,"");
while (text.length >= 6) {
result.push(text.substring(0, 3));
text = text.substring(3);
}
if(text.length > 0) result.push(text);
return result.join("-");
}
每次输入字段中的文本更改时,都可以使用此函数。它将产生以下结果:
"12345678" -> "123-45678"
"123d456789" -> "123-456-789"
"123-4567-89" -> "123-456-789"
怎么样
> "12345678".match(/\d{3}(?=\d{2,3})|\d+/g).join("-")
"123-456-78"
> "123456789".match(/\d{3}(?=\d{2,3})|\d+/g).join("-")
"123-456-789"
> "1234567890".match(/\d{3}(?=\d{2,3})|\d+/g).join("-")
"123-456-7890"
如果您已经拥有完整的数字或字符串
var x = "329193914";
console.log(x.replace(/(\d{3})(\d{3})(\d{3})/, "$1-$2-$3"));
如果有人在打字时需要…
$('#locAcct').keyup(function () {
var foo = $(this).val().split("-").join(""); // remove hyphens
if (foo.length > 0) {
foo = foo.match(new RegExp('.{1,3}', 'g')).join("-");
}
$(this).val(foo);
});
我相信最简单的方法是在每个
n位数之后加上破折号
var a=$(“#结果”);
var x=“Asija kasdjflaksd jflka asdkhflakjshdfk jasd flaksjdhfklasd f123456781234567812345678123445456789”
a、 html(x.replace(/(\d{15})/g,“$1-”)代码>
最简单的方法是使用简单的javascript onkey和函数。。。它会在每输入3个字符后加上破折号
<input type="text" class="form-control" name="sector" id="sector" onkeyup="addDash(this)" required>
添加以下脚本
<script>
function addDash (element) {
let ele = document.getElementById(element.id);
ele = ele.value.split('-').join(''); // Remove dash (-) if mistakenly entered.
let finalVal = ele.match(/.{1,3}/g).join('-');
document.getElementById(element.id).value = finalVal;
}
</script>
函数addDash(元素){
让ele=document.getElementById(element.id);
ele=ele.value.split('-').join('');//如果输入错误,请删除破折号(-)。
设finalVal=ele.match(/.{1,3}/g).join('-');
document.getElementById(element.id).value=finalVal;
}
电话号码可以保留多长时间?9和10是我在这里看到的,但是还有其他的可能性你必须考虑吗?工作,但是如果我从中间删除和添加数字,并且添加数字,它就不会重新格式化它。示例:“123-456-7890”在5旁边添加了数字1,结果是:“123-456-7890”不应allow@GGio:首先删除破折号val=val.replace(/-/g',)
然后重新格式化.123-4567890,请帮助我获得这样的结果。只在第一个数字后插入连字符为什么你今天对所有答案都大喊大叫?请编辑您的答案,并使用小写而不是大写。@ZsoltMeszaros这只是因为大写,顺便问一下,为什么用小写书写很重要?因为完全用大写字母键入的消息等同于叫喊和其他争论行为。