2016-11-15 83 views
0

我有一個應該格式爲「XX-YY-123456」的策略號。我正在編寫一個格式化程序,該格式程序應該在用戶鍵入策略編號或複製/粘貼時以上述格式自動格式化。需要幫助修改以下代碼以符合我的要求。在文本框中輸入文本的格式

$('.policynumber').bind("change keyup input",function() { 
    foo = $(this).val().split("-").join(""); // remove hyphens 
    foo = foo.match(new RegExp('.{1,3}', 'g')).join("-"); 
    $(this).val(foo); 
}); 

上面的代碼工作正常,如果我必須每3個字符放破折號。

+0

有一個谷歌爲「輸入掩碼」庫。有很多已經可用,將爲你做這個 –

+0

我試過Google搜索。我發現的大多數東西都是固定長度的,因爲上面的代碼工作並每3個字符放置一個破折號。此外,上面的代碼完美適用於打字以及複製粘貼內容。如果有人能夠幫我修改這段代碼以滿足我的需求,這將會非常有幫助 – user3675261

+0

[This library](https://github.com/RobinHerbots/Inputmask)需要一個自定義掩碼。 'aa-aa-999999'會適用於你的情況 –

回答

1

你需要改變正則表達式根據格式:

"1234567890".match(/\d{2}(?=\d{6})|\d+/g).join("-") 

您需要在代碼中改變這樣的:

$('.policynumber').bind("change keyup input",function() { 
     foo = $(this).val().split("-").join(""); // remove hyphens 
     foo = foo.match(/\d{2}(?=\d{6})|\d+/g).join("-"); 
     $(this).val(foo); 
    });