使用正则表达式检查字符串错误中的pangram

和1

罗伊想提高自己的编程比赛打字速度。他的朋友建议他反复输入句子“快速的棕色狐狸跳过懒狗”。该句子被称为pangram,因为它包含字母表中的每个字母。

在多次输入句子后,Roy厌倦了它,因此他开始寻找其他的人物。

给定一个句子,请确定它是否是Pangram。忽略大小写。

如果输入字符串是Pangram,则应返回字符串pangram。否则,它不应返回pangram。

样本输入

我们迅速判定古董象牙带扣获得下一个奖项

// pangram

我们迅速判断了古董象牙带扣的价格

//不是pangram(缺少字母x)

function pangrams(s) {

   const exp = /[a-z]/gi; 

   if (s.includes(exp)) {
     return 'pangram';
   } else {
     return 'not pangram';
   } 
   
}

TypeError:String.prototype.includes的第一个参数不能为正则表达式

如果我正确解决了问题,如何在仍能使用正则表达式的情况下解决此问题?

一定的表现

您的正则表达式是错误的。它只会检查字符串是否包含到的一个字母您还没有正确测试它-检查子字符串是否包含在较大的字符串中,而不是用于正则表达式验证。azString.prototype.includes

如果要测试正则表达式是否与字符串匹配,请使用.test要检查带有正则表达式的字符串中是否所有字母都存在,您必须(?=.*a)对每个字符重复,例如:

const pattern = /^(?=.*a)(?=.*b)(?=.*c)(?=.*d)(?=.*e)...../i;
return s.test(pattern);

但这确实很丑陋且重复。

我不认为正则表达式是解决问题的方法。考虑遍历字符代码以将字符从A转换为Z,并.includes改为使用

const test = (str) => {
  const strUpper = str.toUpperCase();
  // start at A
  for (let i = 65; i <= 90; i++) {
    if (!strUpper.includes(String.fromCharCode(i))) {
      return false;
    }
  }
  return true;
};
console.log(test('The quick brown fox jumps over the lazy dog'));
console.log(test('The quick brown fox jumps over the lazy do'));

如果必须使用正则表达式,则可以通过遍历所有字符代码来动态构造它:

const test = (str) => {
  const pattern = new RegExp(
    '^' +
    Array.from(
      { length: 26 },
      (_, i) => `(?=.*${String.fromCharCode(i + 65)})`
    ).join(''),
    'i'
  );
  return pattern.test(str);
};
console.log(test('The quick brown fox jumps over the lazy dog'));
console.log(test('The quick brown fox jumps over the lazy do'));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Java中的正则表达式检查字符串中的特殊字符

使用正则表达式检查字符串中的特定字符

如何使用正则表达式检查字符串中的重复字符?

如何使用正则表达式检查字符串中的序列

使用正则表达式检查字符串中的条件

检查字符串的正则表达式以

正则表达式检查字符串中是否重复字符

C中的正则表达式,检查字符串是否包含特定字符

正则表达式检查字符串中的特定字符

检查字符串是否与JS中的正则表达式匹配

正则表达式检查字符串中的特定模式

正则表达式检查字符串中的3个相同字母?

检查字符串是否与Bash脚本中的正则表达式匹配

检查字符串是否与ruby中的正则表达式匹配的最快方法?

python正则表达式检查字符串中单词的开始和结束

检查字符串是否与python中的正则表达式完全匹配

使用正则表达式检查字符串“是” javascript代码

使用正则表达式检查字符串的开头是否与模式匹配

使用正则表达式检查字符串以获取有效的CSS

使用正则表达式检查字符串的子序列

使用正则表达式检查字符串和整数的组合

如何使用正则表达式-Javascript检查字符串中是否存在“未定义”测试

Ansible-使用正则表达式检查字符串是否存在于文件中

在iOS中如何使用布尔结果对正则表达式检查字符串

使用多个正则表达式检查字符串中是否存在列入黑名单的模式

使用Java中的正则表达式检查字符串是否以2个不同的数字结尾

使用正则表达式(javascript)检查字符串中的所有字母是否为辅音

正则表达式检查字符串是否包含指定字符以外的字符

检查字符串是否遵循python正则表达式中的特定字符串列表