拆分数字可能使用正则表达式

时间:2011-12-16 16:36:23

标签: javascript jquery html regex

我有一个HTML textarea,用户可以在其中插入数字序列号。它们是内联的,由任何字符(包括空格)分隔,或者来自excel文件的列。

如果第一个字符为“1”,则序列号长度可以为14个字符,否则它们的长度始终为15个字符。

我想要实现的是一个jquery函数,它读取这个textarea的内容并在提交表单时生成一个html表,每个序列代码都在一个表的新tr行中。

到目前为止,我试图拆分列中提交的代码:

输入示例:

12345678912345
12345678912346
12345678912345
223456789123455
623456789123457

$("#add_code").click(function(){
    var code = $("#code").val();

    for (line in code.split('\n')){
        $("#codes_list").append('<tr><td>'+code[line]+'</td></tr>');
    }
});

提前致谢!

3 个答案:

答案 0 :(得分:1)

我不打算为你写这个,但我可以告诉你的是你可以使用“[0-9] +”模式来匹配连续的数字序列。

javascript正则表达式结果应该允许多个匹配。

请参阅此处的示例http://www.regular-expressions.info/javascriptexample.html

答案 1 :(得分:0)

所以你只想拆分任何非数字?

code.split(/[^0-9]+/ig)

答案 2 :(得分:0)

function parseSerialCodes(input) {
    var serialCodeRegExp = /(1\d{13}|\d{15})/g;

    var matches = [];
    var match = null;
    while((match = serialCodeRegExp.exec(input))) {
        matches.push(match[1]);
    }
}

$("#add_code").on("click", function () {
    var input = $("#code").val();
    var serialCodes = parseSerialCodes(input);

    var tableRows = serialCodes.map(function (code) {
        return "<tr><td>" + code + "</td></tr>";
    });
    var tableContents = tableRows.join("");

    $("#codes_list").append(tableContents);
});