美文网首页
第23章 正则表达式作业

第23章 正则表达式作业

作者: kzc爱吃梨 | 来源:发表于2019-04-29 10:49 被阅读0次

第1题:什么是贪婪模式和非贪婪模式?

什么是贪婪模式和非贪婪模式?

比如{3,5}这个量词,要是在句子中出现了十次,那么他是每次匹配三个还是五个,反正3、4、5都满足3~5的条件

量词在默认下是尽可能多的匹配的,也就是大家常说的贪婪模式

'123456789'.match(/\d{3,5}/g); //["12345", "6789"]

既然有贪婪模式,那么肯定会有非贪婪模式,让正则表达式尽可能少的匹配,也就是说一旦成功匹配不再继续尝试,做法很简单,在量词后加上?即可

'123456789'.match(/\d{3,5}?/g); //["123", "456", "789"]

总结

  1. 在贪婪(默认)模式下,正则引擎尽可能多的重复匹配字符
  2. 在非贪婪模式下,正则引擎尽可能少的重复匹配字符

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

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

var str="asd562is_";
console.log(isValidUsername(str));

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

function isPhoneNum(str){
  return /^(\+86-)?1[356789]\d{9}$/.test(str);
}

var str="+86-15706890196";
console.log(isPhoneNum(str));

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

function isEmail(str){
   return /^\w+@[\w.]+$/.test(str);
}

var str = '12345678@qq.com'
console.log(isEmail(str));

第5题:写一个函数trim(str),去除字符串两边的空白字符。

function trim(str){
  return str.replace(/^\s+|\s+$/g,"");
}
console.log(trim("    wwtrdsfcf   "));

第6题:\d\w\s[a-zA-Z0-9]\b.*+?x{3}^$分别是什么?

字符 含义
\d 数字字符,等价[0-9]
\w 单词字符,字母、数字下划线,等价[a-zA-Z_0-9]
\s 空白符(包含包括:空格符 ,制表符 ,回车符,换行符 ,垂直换行符,换页符
[a-zA-Z0-9] 单词字符,字母、数字
\b 单词边界
. 除了回车符和换行符之外的所有字符
* 出现零次或多次(任意次)
+ 出现一次或多次(至少出现一次)
出现零次或一次(最多出现一次)
x{3} 匹配3个x('xxx'),即/xxx/
^ 以xxx开头
$ 以xxx结尾

相关文章

网友评论

      本文标题:第23章 正则表达式作业

      本文链接:https://www.haomeiwen.com/subject/yegenqtx.html