JS 正则表达式#3案例

2020-07-01  本文已影响0人  IamaStupid

匹配字符串中的变量名称

str = "三好学生Hello w888 8ss88 {{msg}} - {{person.name}}--}}--{{}}"
  reg = new RegExp(/\w+/g);
  arr = reg.exec(str)
  arr2 = str.match(reg)
  console.log('exec:', arr)
  console.log('match:', arr2)
  // exec: ["Hello", index: 4, input: "三好学生Hello w888 8ss88 {{msg}} - {{person.name}}--}}--{{}}", groups: undefined]
  // match: (6) ["Hello", "w888", "8ss88", "msg", "person", "name"]

 reg = new RegExp(/[a-zA-Z]+/g);
  arr = reg.exec(str)
  arr2 = str.match(reg)
  console.log('exec:', arr)
  console.log('match:', arr2)
  // exec: ["Hello", index: 4, input: "三好学生Hello w888 8ss88 {{msg}} - {{person.name}}--}}--{{}}", groups: undefined]
  // match: (6) ["Hello", "w", "ss", "msg", "person", "name"]

\w 等价于 ‘[A-Za-z0-9_]’,字母数字下划线
. 查找单个字符,除了换行和行结束符
n+ 匹配任何包含至少一个 n 的字符串
*、+ 和 {n,} 重复类具有强贪婪性,表现为贪婪的无限性。

如果不加+号,match匹配的就是一个个字母。

验证邮箱

function validEmail (emailStr) {
    var reg = new RegExp(/^[a-zA-Z0-9-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z]+$/g);
    let flag = reg.test(emailStr);
    console.log("validEmail "+emailStr+":"+flag);
}
// absd@b.com // true
// @a.com // false
// abc@a.b.com  // true
// abc@a.b.com/  // false
// abc@.com  // false
// absd@a-b.com // true

删除空格

// 删除字符串左右的空白
  function replaceTrim (str) {
    var reg = new RegExp(/(^\s+|\s+$)/,'g');
    let newStr = str.replace(reg, "");
    console.log("replaceKg "+str+":"+newStr);
  }
  // 删除所有空白 包括字符串中间的空白
  function replaceAll (str) {
    var reg = new RegExp(/\s+/,'g');
    let newStr = str.replace(reg, "");
    console.log("replaceKg "+str+":"+newStr);
  }

匹配任意双字节的汉字

  reg = new RegExp(/[^\u0000-\u00ff]+/g);
  str = '中国光谷ggggggggg sd ';
  arr = reg.exec(str)
  arr2 = str.match(reg)
  console.log('exec:', arr)
  console.log('match:', arr2)
  // exec: ["中国光谷", index: 0, input: "中国光谷ggggggggg sd ", groups: undefined]
  // match: ["中国光谷"]
上一篇下一篇

猜你喜欢

热点阅读