我有一个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>');
}
});
提前致谢!
答案 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);
});