正则表达式

2016-09-05  本文已影响28人  _Josh

问答

  • \d :匹配一个数字,等价于[0-9].例如:/\d/或者/[0-9]/匹配"B2 is the nice."中的'2'

  • 贪婪模式:
    就是在整个表达式匹配成功的前提下,尽可能多的匹配,也就是所谓的“贪婪”,通俗点讲,就是看到想要的,有多少就捡多少,除非再也没有想要的了。

代码题

function trim(str) {
      var reg = /^\s+|\s*$/g; 
      return str = str.replace(reg,'')
}

function hasClass(el,cls) {
  var reg = /\s+|*\s/
  if (reg.test(el.className)) {
    return true
  }
  return false
}

function addClass(el,cls) {
  if (hasClass(el,cls)) {
    return false
  }
  el.className += " " + cls;
}

function removeClass(el,cls) {
  if (hasClass(el,cls)) {
    el.className.replace(cls,"")
  }
  return false
}


function isEmail(str){  
    var pat = /\S+@\S+\.\S+/;
    return pat.test(str)
}

function isPhoneNum(str){
    var pat = /^1[356789]\d{9}$/;
    return pat.test(str)

function isValidUsername(str){
    var pat = /^\S\w{6,20}\S$/;
    return pat.test(str)
}


function isValidPassword(str) {
  if (str.length<6||str.length>20) {
    return false //排除长度不合格的
  }else
  if (/[^a-zA-Z0-9_]/.test(str)) {
    return  false // 排除包含四种类型之外的字符
  }else
  if (/(^[a-z]+$)|(^[A-Z]+$)|(^[\d]+$)|(^[_]+$)/.test(str)){
    return false // 排除只有一种类型的情况
  }else
  return true
}

var re = /#\w{6}/g
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee #fd2 "
alert( subj.match(re) ) // #121212,#AA00ef

var str = 'hello "hunger" , hello "world"';
var pat = /".*"/g;
str.match(pat); 
结果

因为默认是贪婪模式,所以一次匹配会尽可能匹配多的字符,知道无法继续匹配为止因此

var str = 'hello  "hunger" , hello "world"';
var pat =  /".*?"/g;    //改为非贪婪
str.match(pat);
//[""hunger"", ""world""]
str = '.. <!-- My -- comment \n test --> .. <!----> .. '
re = /<.*\n*.*?>/g
str.match(re) // '<!-- My -- comment \n test -->', '<!---->'

贪婪模式

str = '.. <!-- My -- comment \n test --> .. <!----> .. '
re = /<![^>]*>/g
str.match(re) // '<!-- My -- comment \n test -->', '<!---->'
var re = /<\w.*?>/g
var str = '<> <a href="/"> <input type="radio" checked><b>'
str.match(re) // '<a href="/">', '<input type="radio" checked>', '<b>'

贪婪模式

var re = /<[^>]+>/g
var str = '<> <a href="/"> <input type="radio" checked><b>'
str.match(re) // '<a href="/">', '<input type="radio" checked>', '<b>'

              本文版权归作者饥人谷_Josh和饥人谷所有,转载请注明来源
上一篇 下一篇

猜你喜欢

热点阅读