使用正则循环截取替换文本

针对于选词填空题

效果展示例子: 人生得意须( 尽欢 金环 ),莫使金樽空( 对月 对越 )
// 已知条件
let name = "人生得意须(),莫使金樽空()"
let newArr = ['尽欢|金环','对月|对越']
let ShowAnswer = '尽欢|对月' // 答案
let pattern = /()/gi; 
let arr = name .match(pattern); // 正则获取小括号形成数组
for (let i = 0; i < arr.length; i++) {
     name = name .replace(arr[i], `(@${i})`) // 循环重新字符串赋值
}
let Count = newArr.length;
for (let i = 0; i < Count; i++) {
    name = name .replace(`(@${i})`,`${newArr[i].split('|').join(' ')}`) // 替换小括号中填答案
}
	console.log(name )
	return name 
}
二次衍化版
// 修改
for (let i = 0; i < otherAnsCount; i++) {
    Ttitle = Ttitle.replace(`(@${i})`,`${this.bankedFun(ShowAnswer,newArr[i]).join(' ')}`)
}
// 方法调用
bankedFun(ShowAnswer,newArr){
      let returnEle = ''
      let btnTitle = []
      let bankedTitle = newArr.split('|')
      bankedTitle.forEach((res)=>{
        if(ShowAnswer.includes(res)){
          btnTitle.push("<span style='background-color:#008000;border-radius: 2px;color: #FFFFFF;padding:0 12px;'>" + res +"</span>")
        }else{
          btnTitle.push("<span style='background-color:#DCDFE6;border-radius: 2px;color: #000000;padding:0 12px;'>" + res +"</span>")
        }
        btnTitle.join(' ')
        returnEle = btnTitle
      })
      return returnEle
    },
    // 通过v-html标签展示字符串
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值