使用正则表达式计算字符串中的特定字母是个坏主意吗?

Is it a bad idea to count specific letters in string using regex?

我正在使用正则表达式在字符串中查找字母(a 到 m)。我已经找到了一种无需正则表达式即可执行相同操作的方法,但是否可以使用正则表达式执行此操作?在计算字符串中的特定字母时使用正则表达式是好还是坏?

当使用正则表达式时 findError.length 值对我来说是错误的,另一种方式工作正常

这是我使用正则表达式搜索字母的方式

function printerError(s) {
            let findError = s.match(/[a-mA-M]+/g).toString();
            let sum = (s.length - findError.length);
            return sum + '/' + s.length;
        }

    console.log(printerError("anananaanaann"));

** 工作代码

    function printerError2(s) {
      const goodLetters = Array.from("abcdefghijklm");
      let total = s.length;
      let badLetters = 0;
      for (let i = 0; i < total; i++) {
        if ( !goodLetters.includes(s.charAt(i)) ) {
          badLetters++;
        }
      }
      return `${badLetters}/${total}`;
    }

console.log(printerError2("anananaanaann"));

这 returns 你的字符串中 a-mA-M 之间的字符数:

function printerError(s) {
  return s.length - s.replace(/[a-mA-M]/g, '').length;
}

console.log(printerError("anananaanaann"));

或者你甚至可以这样做:

function printerError(s) {
  return (s.match(/[a-mA-M]/g) || []).length;
}

console.log(printerError("anananaanaann"));