Vue 全局匹配大括号及其里面的值 == “{关键字符}” 并替换成 input 输入框

Vue 全局匹配大括号及其里面的值 == “{关键字符}” 并替换成 input 输入框

话不多说,直接上代码解释
这是一个将字符串转换为 input的方法,用到的是Vue的开发环境,所有会有this.set等方法

processString(str) {
      let regex = /\{(.*?)\}/g; //匹配{*} 大括号里面任意内容的正则
      let arr = str.match(regex); //字符串匹配出来的数组
      if (!arr) return str;
      let arrNum = arr.map(item => {
        let key = `p${item.substr(1, item.length - 2)}`;  //记录大括号里的值 用作id 方便取值
        if (!this.salaryVars.hasOwnProperty(key)) this.$set(this.salaryVars, key, '');
        str = str.replace(
          new RegExp('\\{' + item.substr(1, item.length - 2) + '\\}', 'g'),
          `<input id='p${item.substr(1, item.length - 2)}' style='border: solid 1px #ccc;width: 50px;height:24px;margin-left:10px' ></input>`
        );
      });   //循环遍历取出所有正则匹配值并转换为input
      return str;
    },
<span v-html='str'></span>

这里需要注意的一点就是Vue语法不支持str字符串直接v-html编译成dom的时候在上面直接挂载指令的。
比如 你想在匹配的input上绑定v-model 和 @change等事件,是不能生效的,楼主已实测。

**欢迎大家加入微信群交流**

在这里插入图片描述

今天是从业四年以来第1篇分享文章,也算是个进步吧,一天进步一点点,加油

好,今天的方法就分享到这里,如果各位有什么不明白的,可以在评论下留言,大家一起探讨。我是三井寿,一个永不放弃的男人!
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值