我已经使用正则表达式完成了格式化:
<p class="phone">2124771000</p>
$(".phone").text(function(i, text) {
text = text.replace(/(\d\d\d)(\d\d\d)(\d\d\d\d)/, "$1-$2-$3");
return text;
});
使用上面的示例,我可以转换 212-477-1000:
<p class="phone">ABC1234</p>
现在我想使用上面的文本制作 ABC-1234 字符串。
最佳答案
如果您想在 1 个正则表达式中捕获两者..
您可以使用任一表达式 |
例如。
/^(\d{3})(\d{3})(\d{4})|([A-Z]{3})(\d{4})$/
function replacer(m, p1,p2,p3, p4,p5) {
if (p1) return [p1,p2,p3].join('-')
else return [p4,p5].join('-');
}
$(".phone").text(function(i, text) {
text = text.replace(/^(\d{3})(\d{3})(\d{4})|([A-Z]{3})(\d{4})$/, replacer);
return text;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="phone">ABC1234</p>
<p class="phone">1231231234</p>
<p class="phone">XYZ2345</p>
<p class="phone">9999999999</p>
关于javascript - 如何在正则表达式中制作格式 ABC-1234,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46115305/