function isPangram(string){
return (string.match(/([a-z])(?!.*\1)/ig) || []).length === 26;
}
/([a-z])(?!.*1)/ig,这个正则该如何理解?
function isPangram(string){
return (string.match(/([a-z])(?!.*\1)/ig) || []).length === 26;
}
/([a-z])(?!.*1)/ig,这个正则该如何理解?
x(?!y)
// 仅匹配不被y跟随的x。
// 举个例子,/\d+(?!\.)/ 只会匹配不被点(.)跟随的数字。
// /\d+(?!\.)/.exec('3.141') 匹配"141",而不是"3.141"
\n
n 是一个正整数。一个反向引用(back reference),指向正则表达式中第 n 个括号(从左开始数)中匹配的子字符串。
例如,/apple(,)\sorange\1/ 匹配 "apple, orange, cherry, peach." 中的 "apple,orange,"。
判断字符串是不是包含a-z(忽略大小写)这26个字母
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
ig 全局匹配忽略大小写
[a-z] 匹配26个英文字母中的任意1个
\1 表示第一个括号匹配的模式,这里即第一个圆括号匹配的字母
?! 正向否定查找,当后面不是.*\1时匹配这个字符,即当a后面的串里没有a则匹配这个a.
整体下来就是,忽略大小写看不重复字母个数是否是26个。