我正在使用一系列正则表达式和jquery函数来格式化9位数的文本框。代码如下:

function FormatBox() {

    var TheText = $('#TheBox').val();

    //remove leading 0
    if (TheText.charAt(0) === '0') {
       TheText = TheText.substring(1);
    }

    //take only digits
    TheText = TheText.replace(/\D/g, '');

    //take only the first 9 digits
    if (TheText.length > 9) {
        TheText = TheText.substring(0, 9);
    }

    //reformat string
    TheText = TheText.replace(/(\d{1})?(\d{2})?(\d{2})?(\d{2})?(\d{2})?/, '$1 $2 $3 $4 $5');

    //trim string
    TheText = $.trim(TheText);

    $('#TheBox').val(TheText);
}

function Start() {

    $('#TheBox').keyup(FormatBox);
}

$(Start);


一切正常,但是我希望将这些将regex和jquery混合在一起的规则组合到一个regex中,但我正在努力使其正常工作。我需要做些什么来将约束添加到重新格式化的字符串中才能起作用? jsFiddle是here

谢谢。

最佳答案

尝试这个:

TheText = TheText.replace(/(\d{1,2})(?=(?:\d{2})+$)/g, '$1 ');

10-08 10:56