Dies wird auf dem mobilen Endgerät verwendet.
Wenn der Eingabetyp Zahl ist, gibt es keine Beschränkung auf Englisch oder Chinesisch, und die maximale Länge hat keine Auswirkung.
Wenn der Eingabetyp Tel ist, gibt es keine Beschränkung auf Englisch oder Chinesisch maxlength hat einen Effekt, also verwenden Sie tel.
keyup, um andere Zeichen als Zahlen zu filtern.
Entschuldigung, Meister, gibt es in diesem Code Raum für Optimierungen?
<input v-model="phoneNumber" placeholder="输入手机号" type="tel" maxlength="11" @keyup="handleFilterLetters">
<script type="text/javascript">
vm = new Vue({
el: "#app",
data: {
phoneNumber: null,
},
methods: {
handleFilterLetters: function(){
var self = this;
self.phoneNumber=self.phoneNumber.replace(/[^\d]/g,'');
},
}
})
</script>
phoneNumber
初始值应该是字符串的''
,否则对一个可能为 null 的变量调用replace
是不安全的。var self = this
是不必要的。handleFilterLetters
好长啊,改成onKeyUp
不好读一点吗(<input>
一行写的太长了,eslint-airbnb 的规则是楼上说的都对
题主还可以多注意一下 code style
比如:
self.phoneNumber=self.phoneNumber.replace(/[^\d]/g,'');
写成
self.phoneNumber = self.phoneNumber.replace(/[^\d]/g,'');
比较好
这里用的局部filter
如果想可复用程度高点,全局filter也可以的