我正在尝试弹出包含字母字符的数组的每个结果。为此,我使用:
if(gtin.toString().length != 13 || /[a-z\-]+/ig.test(gtin) == true) {
gtin = "null";
}
它适用于某些变量...但不是每次都有。例如:
所有这些变量仍会出现在数组中。你知道为什么这不起作用吗? 谢谢!
答案 0 :(得分:1)
你必须添加数字并锚定你的正则表达式:
var test = [
'abc',
'CS230',
'C1',
'L3940-noir',
'ab::cd'
];
console.log(test.map(function (a) {
return a+' :'+/^[a-z0-9-]+$/ig.test(a);
}));

答案 1 :(得分:1)
这真的不是一个答案。它更像是 工作的例证。
var texts = ['CS230','C1', 'L3940-noir', '1231231231231', '/()!!!###&&&+', 'ABCDEFGHIJKLM', '0123456s78901'];
texts.forEach(function(gtin) {
if(gtin.toString().length != 13 || /[a-z\-]+/ig.test(gtin) == true) {
gtin = "null";
}
document.write(gtin + '<br/>');
});
&#13;
检查此代码段,您会发现所有示例都设置为空,即&#34;拒绝&#34; (我想这就是你的意思)。它只允许长度为13个字符且没有字母的字符串通过。