正则相关 RegExp

文章介绍了如何在JavaScript中使用正则表达式进行字符串替换,包括全局替换和动态生成正则,以及如何在表单验证中自定义校验规则。还讲解了去除HTML标签的方法和限制输入数字的技巧。
摘要由CSDN通过智能技术生成

1、利用正则对字符串内部的文字进行全部替换

    tempItem = item.replace(
              `/${this.searchContent}/g`,
              `<span style="background-color: yellow">${this.searchContent}</span>`
            );
//这个正则全局替换没有生效
//修改后:
tempItem = item.replace(new RegExp(this.searchContent, 'g'), `<span style="background-color: yellow">${this.searchContent}</span>`);
//在这个示例中,我们使用了 new RegExp() 构造函数创建了一个正则表达式对象,将要替换的内容传递给构造函数,并使用 'g' 标志来表示需要全局匹配。

//需要注意的是,在正则表达式中,如果要使用变量,可以使用 new RegExp() 构造函数来动态生成正则表达式。这是因为在 JavaScript 中,正则表达式可以是字面量或者对象。

//总结一下,如果要使用正则表达式进行全局替换,可以将正则表达式作为字面量或者对象传递给 replace() 方法,并使用全局匹配标志 /g。如果要使用变量,可以使用 new RegExp() 构造函数动态生成正则表达式。

2、自定义正则:

rules: {
   passwordCheck: [
      this.$ruler('确认密码'),
       { validator: validatePassCheck, trigger: 'blur' },
    ],
 }

const validatePassCheck = (rule, value, callback) => {
  if (value === '') {
     callback(new Error('请输入确认密码'));
   } else if (value !== this.form.password) {
      callback(new Error('两次密码不一致,请重新输入'));
   } else {
     callback();
   }
};
// 或者直接写
relatePersonList: [
  {
    validator: (rule, value, callback) => {
      if (value.length == 0) {
        callback(new Error('请提取人员信息'));
      } else {
        callback();
      }
    },
    trigger: 'blur',
  },
]

validator 属性是一个用于执行具体校验逻辑的自定义函数。该函数接收两个参数:表单字段的值和回调函数,你可以在函数中编写校验逻辑,并通过调用回调函数来指示校验结果。例如:
function validatePassCheck(rule, value, callback) {
  // 执行校验逻辑
  if (value === 'password') {
    callback(new Error('密码不能为 "password"'));
  } else {
    callback();
  }
}
在上面的示例中,validatePassCheck 函数校验了密码字段的值,如果值为 "password",则通过调用回调函数传递一个带有错误信息的 Error 对象,表示校验不通过;否则,通过调用回调函数表示校验通过。

3、通过正则去除html的标签

 removeHtmlTags(text) {
    return text.replace(/<.*?>/g, '');
 },
        
  let tempContent = this.removeHtmlTags(this.form.content);
  this.$set(this.form, 'content', tempContent);

// 法二
export function html2Text(val) {
  // 创建临时的 div 元素
  const div = document.createElement('div');

  // 将 HTML 字符串赋值给 div 元素的 innerHTML 属性
  div.innerHTML = val;

  // 返回 div 元素的 textContent 或 innerText 属性值,即将 HTML 标记去除后得到的纯文本字符串
  return div.textContent || div.innerText;
}

4、只允许输入数字

      <el-input
          v-model="form.arrearsNum"
           placeholder="请输入拖欠人数"
           @input="arrearsNumChange($event)"
           style="width: 220px"
           clearable
      ></el-input>
===========================================================================
    arrearsNumChange(event) {
      const input = event;
      event = input.replace(/\D/g, ''); // 只允许输入数字
      this.form.arrearsNum = event;
      this.$forceUpdate();
    },

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值