檢查字符串是否具有相同數量的'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