84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
這是行動端使用的,input type 為number 時英文或中文都沒有限制,而且maxlength不起作用,input type 為tel 時英文或中文也都沒有限制,但maxlength有作用,所以用tel,keyup 是為了過濾數字以外的字元。請問大神這段程式碼還有沒有優化的空間?
phoneNumber初始值應該是字串的'',否則對一個可能為 null 的變數呼叫replace是不安全的。
phoneNumber
''
replace
var self = this是不必要的。
var self = this
handleFilterLetters好長啊,改成onKeyUp不好讀一點嗎(
handleFilterLetters
onKeyUp
一行寫的太長了,eslint-airbnb 的規則是
樓上說的都對題主還可以多注意一下 code style例如:self.phoneNumber=self.phoneNumber.replace(/[^d]/g,'');
self.phoneNumber=self.phoneNumber.replace(/[^d]/g,'');
寫成self.phoneNumber = self.phoneNumber.replace(/[^d]/g,'');
self.phoneNumber = self.phoneNumber.replace(/[^d]/g,'');
比較好
這裡用的局部filter
如果想可重複使用程度高點,全域filter也可以的
var app = new Vue({ el: "#app", data: { phone: "" }, methods: { phoneChange(e) { this.phone = e.target.value this.$forceUpdate() // 这里必须有 } }, filters: { 'num': function(value) { return value.replace(/[^\d]/g, '') } } })
phoneNumber
初始值應該是字串的''
,否則對一個可能為 null 的變數呼叫replace
是不安全的。var self = this
是不必要的。handleFilterLetters
好長啊,改成onKeyUp
不好讀一點嗎(一行寫的太長了,eslint-airbnb 的規則是
樓上說的都對
題主還可以多注意一下 code style
例如:
self.phoneNumber=self.phoneNumber.replace(/[^d]/g,'');
寫成
self.phoneNumber = self.phoneNumber.replace(/[^d]/g,'');
比較好
這裡用的局部filter
如果想可重複使用程度高點,全域filter也可以的