【发布时间】:2020-02-12 03:20:07
【问题描述】:
我是 Vue.js 的新手,并试图找到一种方法来将输入字段中的电话号码格式化为所需的格式。我能够在用纯 javascript 编写的 stackoverflow 上找到答案,但我不知道如何在 Vue 中使用正则表达式。
javascript 中的解决方案
document.getElementById('phone').addEventListener('input', function (e) {
var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})/);
e.target.value = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');
});
所以我的问题是如何在这个输入 div 上应用它?因此,它允许用户只输入数字,并且当他输入数字时,数字会以所需的格式显示。
<div contentEditable="true" class="inputDiv"></div>
示例我想使用 vue.js 实现什么。
document.getElementById('phone').addEventListener('input', function (e) {
var x = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})/);
e.target.value = !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');
});
<input type="text" id="phone" placeholder="(555) 555-5555"/>
我试图寻找一个可能非常直截了当的答案,但由于我是 Vue 的新手,所以我找不到任何可以帮助我让它发挥作用的东西。
【问题讨论】:
-
我不明白您到底想要什么:您想在将输入值发送到后端之前对其应用某种格式吗?您想验证号码是否符合特定格式?您是否要修改输入,以便当用户使用错误格式书写时应用程序会实时纠正它?
-
很抱歉让您的任务感到困惑。我编辑了这个问题。希望它能提供所有需要的信息。
标签: vue.js