多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 考察正则 实现一个decodeString函数,输入符合`count[letter]`规则的参数,能将letter的内容count次输出。其中,count是0或正整数,letter是区分大小写的纯字母。并正确通过下面的测试用例。 解题思路, - 首先找出判断符合其规则的正则单元 - 判断整体是否符合,如果不符合对应的规则,直接返回空字符串 - 如果整体符合,继续循环,根据match的原理得到匹配数组,然后进行字符串归并 - 归并时主要是根据第一个出现[符号的位置,然后得到对应的两个分割子字符串即可 ``` functiondecodeString(str){ var reg = /(([0-9]|[1-9][0-9]*)(\[[a-z|A-Z]*\]))/g var sumReg =/^(([0-9]|[1-9][0-9]*)(\[[a-z|A-Z]*\]))*$/g if(!sumReg.test(str)) return '' var spilitArr = str.match(reg) return joinStr = spilitArr.reduce((str,item)=>{ var sepIndex = item.indexOf('[') var count = item.slice(0,sepIndex) var repeatStr = item.slice(sepIndex+1,item.length-1) str +=repeatStr.repeat(count) return str },'') } decodeString('5\[ab\]')// return 'ababababab' decodeString('3\[a\]2\[bc\]')// return 'aaabcbc' decodeString('2\[abc\]3\[cd\]ef') // return 'abcabccdcdcdef' decodeString('3\[a2\[c\]\]') // return 'accaccacc' ``` [链接]( p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px 'Helvetica Neue'; color: #00a2ff} - [codepen地址](https://codepen.io/robinson90/pen/omVvQp?editors=0010) ## 场景:依赖模块统计