正则表达式

题目1: \d,\w,\s,a-zA-Z0-9,\b,.,,+,?,x{3},^,$分别是什么?*
\d:匹配数字0~9中的一个
\w:匹配[09,az,A~Z]中的一个
\s:匹配空白字符
[a-zA-Z0-9]:匹配大小写字母AZ,az,0~9中的一个
.: 除了回车符和换行符之外的所有字符
*: 量词出现零次或多次(任意次)
+:量词匹配至少一次
?:量词匹配至多一次
x{3}:匹配的对象是3个x
:匹配开头,如果是[]则表示取反
$:匹配结尾
题目2: 写一个函数trim(str),去除字符串两边的空白字符

function trim(str) {
  str = str.replace(/^\s+|\s+$/g, "")
}

题目3: 写一个函数isEmail(str),判断用户输入的是不是邮箱

function isEmail(str) {
  // 第一部分:由字母、数字、下划线、短线“-”、点号“.”组成, 
  // 第二部分:为一个域名,域名由字母、数字、短线“-”、域名后缀组成, 
  // 而域名后缀一般为.xxx或.xxx.xx,
  let reg = /^(\w+(\.\w+)*@\w+(\.\w+)+|)$/
  return reg.test(str)
}

题目4: 写一个函数isPhoneNum(str),判断用户输入的是不是手机号

function isPhoneNum(str) {
  let reg = /^1[0-9]{10}$/
  return reg.test(str)
}
isPhoneNum("1588324573")false
isPhoneNum("15883245713")true

题目5: 写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)

function isValidUsername(str) {
  let reg = /^\w{6,20}$/
  return reg.test(str)
}

题目6: 写一个函数isValidPassword(str), 判断用户输入的是不是合法密码(长度6-20个字符,只包括大写字母、小写字母、数字、下划线,且至少至少包括两种)
function isValidPassword(str) { if (str.length < 6 || str.length > 20 || /\W/.test(str) == true) { return false } if (/^[0-9]+$/.test(str) == true) return false if (/^[a-z]+$/.test(str) == true) return false if (/^[A-Z]+$/.test(str) == true) return false if (/^_+$/.test(str) == true) return false return true }
题目7: 写一个正则表达式,得到如下字符串里所有的颜色
var re = /*正则...*/ var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee " console.log( subj.match(re) ) // ['#121212', '#AA00ef']
解:
var re = /#[0-9a-f]{6}/ig var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee " console.log( subj.match(re) ) // ['#121212', '#AA00ef']
题目8: 下面代码输出什么? 为什么? 改写代码,让其输出
[""hunger"", ""world""].

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

//以上代码是贪婪模式,所以尽量匹配第一个"到最后一个"的内容
// 以下代码是非贪婪模式,输出[ '"hunger"', '"world"' ]

var str = 'hello  "hunger" , hello "world"'//非贪婪模式
var pat =  /".*?"/g
console.log(str.match(pat))

你可能感兴趣的:(正则表达式)