检查字符串是否具有相同数量的'x'和'o'。该方法必须返回一个布尔值并且不区分大小写。
示例:
XO("ooxx") => true
XO("xooxx") => false
XO("ooxXm") => true
XO("zpzpzpp") => true // when no 'x' and 'o' is present should return true
XO("zzoo") => false
function XO(str) {
let x = str.match(/x/gi);
let o = str.match(/o/gi);
return (x && x.length) === (o && o.length);
}
match 函数的用法:
js中match函数方法是使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回
str.match(RegExp)
str : 是一个字符串的对象, 这个方法也是字符串的方法
RegExp : 正则
g: 全局匹配(匹配多次)
i: 忽略大小写
有几种结果:
1 --> 匹配不到
匹配不到返回 null
2 --> 不传参数
如果不传参数, 那么值为空字符串.
同样是有这几个属性
3 --> 匹配单个
匹配单个的时候, (无论是单个还是多个)会返回一个数组,
区别在于, 匹配的单个的数组, 会额外多出来几个参数.
input: 是被解析的原始字符串
index: 是匹配匹配到的开始的索引
groups: 我就不清楚了(如果知道的话,可以评论一下)
4 --> 匹配多个
返回一个所以被匹配到的数组,
每匹配到一项就把这一项放到数组中
相比于 匹配单个 少了几个属性.这个要注意一下
5 --> 如果不是一个正则的参数
截图于 MDN