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