Javascript Pangram 正则表达式

标签 javascript regex pangram

我正在尝试编写一个 REGEX 来测试 PANGRAM。我可以用传统的方式来做,但似乎无法用正则表达式解决超过 90% 的测试。

输入:字符串

输出:真||假的

function isPangram(string){ 
   return ___________________.test(string) 
}

到目前为止的测试结果。

6/10 /([a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v, w,x,y,z,\s]+)/i

6/10 /[a-z]{1}/i

6/10 /[a-z]/i

6/10 /[a-z]+/i

9/10 /a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t? u?v?w?x?y?z/i 仅针对 abcdefghijklmopqrstuvwxyz

失败

6/10 /[\w.]+/

非常感谢任何帮助或建议。

最佳答案

  1. 将字符串转为小写
  2. 使用正则表达式从字符串中提取所有唯一的字母
  3. 检查唯一字母的数量是否为26

代码:

function isPangram(string) {
    var regex = /([a-z])(?!.*\1)/g;
    return (string.match(regex) || []).length === 26;
}

Regex101

var regex = /([a-z])(?!.*\1)/g;

function check() {
  var val = document.getElementById('text').value.toLowerCase();

  alert(val.match(regex).length == 26);
}
<input type="text" id="text" />

<button onclick="check()">Check</button>

关于Javascript Pangram 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32557299/

相关文章:

javascript - 带回调的 Angular EventEmitter

javascript - 选择2 "ajax results could not be loaded"

javascript - header 中的 Cookie javascript 错误 "Refused to set unsafe header "Cookie""

javascript - 将 HTML 标签中超出其他标签的文本括起来

c++ - C++中的Pangram函数

javascript - 使用 Angular 更改隐藏/可见

c - C 中的正则表达式

javascript - 如何使用 JavaScript 防止用户复制其 IP?

python - 在 Python 中查找字符串中有多少个不同的字母

java - 判断字符串是否是 Pangram 的代码?