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

标签 javascript regex match regex-negation

我正在使用正则表达式在字符串中查找字母(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"));

最佳答案

这会返回字符串中 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"));

关于javascript - 使用正则表达式计算字符串中的特定字母是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54171659/

相关文章:

javascript - Javascript 中的组合延迟函数调用

javascript - 准确检测圆 Angular div的鼠标悬停事件

javascript - 模糊触发Change事件

mysql - 根据第三个 "key"表从两个表返回值,然后将值相乘并求和

Java正则表达式与斜杠匹配

excel - 在查找 Excel 中查找具有多个条件的最后一个匹配项

Javascript 间隔不重复

java - Jenkins groovy 正则表达式匹配字符串 : Error: java. io.NotSerializableException : java. util.regex.Matcher

c# - 一次性替换(反转)左括号和右括号

c# - 删除字符串从一个单词开始直到字符