我正在開發一個表單,我需要電話號碼欄位在您輸入時重新格式化為
xxx-xxx xx。
這本身是直截了當的,而且以前也有人問過,但我的問題有點不同:
我已經使用了this fiddle中的JavaScript方法。
我使用了this fiddle中的只使用JavaScript的方法,但為了適應我想要的格式,我將最后一個代碼塊編輯成了這樣:
const areacode = input.substring(0,3)。
const gr1 = input.substring(3,6)。
const gr2 = input.substring(6,8)。
const gr3 = input.substring(8,10)。
if(input.length > 7) {
目標。 value = `${areacode}- ${gr1} ${gr2} ${gr3}`。
} else if(input.length > 5) {
target.value = `${areacode}-${gr1} ${gr2}`;
} else if(input.length > 2) {
target.value = `${areacode}-${gr1}`。
} else if(input.length > 0) {
target.value = `${areacode}`。
}
當我在fiddle中嘗試這個方法,或粘貼在codepen中時,它可以完美地作業。但是當我把它應用到我的網站上時,它就不行了。這些字符以一種奇怪的方式被替換。
懷疑。有一個常量包含了一個regex替換,像這樣:
const input = event.target.value。 replace(/D/g,''/span>)。 substring(0,10) 。
我不擅長使用RegEx,但由于這在一個地方有效,但在另一個地方卻不行,我覺得我必須懷疑這行代碼。
uj5u.com熱心網友回復:
對你在問題中提供的代碼進行實驗,我發現它確實能正確作業。請不要在StackOverflow上發布作業代碼,詢問它有什么問題。
盡管如此,我用除錯器檢查了你的網站,發現了一個關于重碼的問題:你沒有使用input.replace(/D/g, ""),而是寫了input.replace(/D/g, ""),它洗掉了所有D字符。
作為一個附帶說明,我可以強烈建議在瀏覽器源視圖中設定斷點來解決此類問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/307552.html
標籤:
上一篇:在Jest測驗中,如何匹配一個包含"/"的字串,并給出一個語法錯誤
下一篇:在R中提取兩個日期之間的文本
