【问题标题】:Check if a variable contain alphabetic character检查变量是否包含字母字符
【发布时间】:2018-04-23 16:30:30
【问题描述】:

我正在尝试弹出包含字母字符的数组的每个结果。为此,我使用:

if(gtin.toString().length != 13 || /[a-z\-]+/ig.test(gtin) == true) {
    gtin = "null";
}

它适用于某些变量……但并非每次都适用。例如:

  • CS230
  • C1
  • L3940-黑色

所有这些变量仍将出现在数组中。你知道为什么这不起作用吗? 谢谢!

【问题讨论】:

  • /[a-z \-]+/ 试试这个?
  • 你能更好地解释数组中你想要或不想要的结果吗?
  • 能否在代码示例中包含数组?
  • (请注意,== true 从来都不是必需的。)
  • 不清楚您要问什么或希望看到什么结果。请使用 Stack Snippets([<>] 工具栏按钮;here's how to do one)通过 runnable minimal reproducible example 演示问题来更新您的问题。

标签: javascript arrays regex google-sheets


【解决方案1】:

您必须添加数字并锚定您的正则表达式:

var test = [
    'abc',
    'CS230',
    'C1',
    'L3940-noir',
    'ab::cd'
];
console.log(test.map(function (a) {
  return a+' :'+/^[a-z0-9-]+$/ig.test(a);
}));

【讨论】:

    【解决方案2】:

    这真的不是答案。这更像是一个说明它确实工作。

    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/>');
    });

    检查这个 sn-p,你会发现你所有的例子都设置为 null,即“rejected”(我猜这就是你的意思)。它只允许 13 个字符长且没有字母的字符串通过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-04
      • 2011-07-11
      • 1970-01-01
      • 2020-12-12
      • 2014-07-16
      • 2011-05-08
      • 1970-01-01
      相关资源
      最近更新 更多