我不明白“ chr”在此功能中所代表的含义或含义。我知道“匹配”必须代表与正则表达式匹配的字符串中的每个字符,“ chr”必须用于确定天气,每个字符是大写还是小写,但我不知道它是如何工作的或如何确定的正确/错误值。
let swapcase = str => {
return str.replace(/([a-z]+)|([A-Z]+)/g, (match, chr) => {
if (chr) {
return match.toUpperCase()
} else {
return match.toLowerCase()
}
})
}
console.log(swapcase('DdishDJSK')) // logs dDISHdjsk
答案 0 :(得分:1)
您的正则表达式:
/([a-z]+)|([A-Z]+)/g
由两个“组成部分”组成(用括号括起来),每个匹配的字符串都可以是第一个或第二个组成部分的匹配项。
chr
是指第一个组成部分匹配的内容,即,如果您的字符串碰巧与第一个组成部分匹配,则chr
将等于您的字符串。否则它将计算为undefined
。
在您的特定情况下,这意味着如果您的匹配项是小写字母,chr
将等于此匹配项,因此if(chr)
将解析为true
。如果您的匹配是大写字母,则chr
将是未定义的,而if(chr)
将解析为false
。