2016-05-12 33 views
0

我需要改變場動態,並設置格式的代碼IA格式化我的郵政編碼其文本來自服務器端像改變文本格式dynamicaly

123456789 

這jQuery的方式改變這個值格式 1234-56789

var ZIptext = $("#ZipLabel").text(); 
    var reformat = ZIptext.replace(/(\d{5})/g, function (match) { 
     return match + "-"; 
    }); 
    $("#ZipLabel").text(reformat.replace(/\-$/, "")) 

,但知道我面臨的問題,我需要改變我的傳真號碼的格式

3453454354 

,它應該像

345-345-4354 

所以有人可以幫助我

+1

' '3453454354'.replace(/(\ d {3})(\ d {3})(\ d {4})/,' $ 1- $ 2- $ 3')' –

+0

如果您願意使用插件,請使用輸入掩碼。使用[digitalbush](http://digitalbush.com/projects/masked-input-plugin/) – guradio

回答

2

做它與捕獲組正則表達式

var res = '3453454354'.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3'); 
 

 
document.write(res);

+0

你的ans解決了我的問題 但是如果這是需要在c#方面的一件事 – Coder

+1

@Coder:我不熟悉它....請看看https://msdn.microsoft.com/en-us/library/xwewhkd1(v=vs.110).aspx –

+1

@Coder高興地幫助:) –

1

這個問題是與此類似here.

可以使用這樣做:

'345345345'.replace(/(\d{3})\-?(\d{3})\-?(\d{4})/,'$1-$2-$3')) 
1

這裏是做一般的功能。

第一個參數是輸入字符串,第二個參數是分隔符,第三個參數是用於分隔輸入的長度數組。您也可以指定'*'作爲最後一個參數。

function separate(_input, _separator, _lengths) { 
    var output = [], i = 0; 
    for(i=0; i<_lengths.length; i++) { 
    if(_input.length <= _lengths[i] || _lengths[i] === '*') { 
     output.push(_input); 
     break; 
    } 
    output.push(_input.substr(0, _lengths[i])); 
    _input = _input.substr(_lengths[i]); 
    } 
    return output.join(_separator); 
} 

使用示例:

separate('3453454354', '-', [3, 3, 4]); // returns "345-345-4354" 

separate('3453454354', '-', [4,'*']); // returns "3453-454354"