正则表达式

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

  • \d 匹配一个一位数字(0到9)
  • \w 匹配一个字母或一个一位数字或一个下划线
  • \s 匹配任意的空白符,包括空格、制表符(Tab)、换行符、中文全角空格等
  • [a-zA-Z0-9] 范围类,我们可以使用 x-y来连接两个字符表示从x到y的任意字符,这是个闭区间 [a-z0-9A-Z_]等同于\w
  • \b 代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配任何字符,它只匹配一个位置。
  • . 除了回车符和换行符之外的所有字符
  • *出现零次或多次(任意次)
  • +出现一次或多次(至少出现一次)
  • ? 出现零次或一次(最多出现一次)
  • {} 出现n次
  • ^ 匹配你要用来查找的字符串的开头
  • $ 匹配结尾。

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

function trim(str){
  var reg = /^\s+|\s+$/g;
  return str.replace(reg,'');
}
var result = trim('   a bccc d     ')
console.log(result);

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

function isEmail(str){
  var reg = /^\w+@\w+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
  return reg.test(str);
}

var result = isEmail('398374199@qq.com');
console.log(result);

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

function isPhoneNum(str){
  var reg = /^(\+86)|1[34578]\d{9}$/;
  return reg .test(str);
  
}
var result  = isPhoneNum('13800138000');
console.log(result);

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

function isValidUsername(str){
  var reg = /^\w{6,20}$/;
  return reg .test(str);
  
}
var result  = isValidUsername('_peter_');
console.log(result);

写一个函数isValidPassword(str), 判断用户输入的是不是合法密码(长度6-20个字符,只包括大写字母、小写字母、数字、下划线,且至少至少包括两种)

function isValidPassword(str){
  var count = 0;
  var reg = /^\w{6,20}$/;
  if(!reg.test(str)){
    return false;
  }
  if(/[a-zA-Z]/.test(str)){
    count++;
  }
  if(/\d/.test(str)){
     count++;
   }
  if(/[_]/.test(str)){
     count++
   }
   console.log(count);
  if(count < 2)
    return false;
  return true;
}
var result  = isValidPassword('123qwe_2ddw6');
console.log(result);

写一个正则表达式,得到如下字符串里所有的颜色

var re = /#[a-fA-F0-9]{6}/g;
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee #fd2 ";
var result = subj.match(re);
console.log(result);

下面代码输出什么? 为什么? 改写代码,让其输出['hunger', 'world'].

var str = 'hello  "hunger" , hello "world"';
var pat =  /".*"/g;  // 贪婪匹配模式 尽可能匹配更多
var result = str.match(pat);  
console.log(result);

//修改如下
var pat =  /".*?"/g;  //改为非贪婪模式
var result = str.match(pat);  
console.log(result);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),...
    小貔阅读 5,553评论 0 7
  • 正则表达式 \n\n\n 【5】正则表达式应用——删除空行 启动EditPlus,打开待处理的文本类型文件。 ①、...
    黄花菜已凉阅读 4,690评论 0 4
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 6,488评论 0 9
  • 几个正则表达式编辑器 Debuggex :https://www.debuggex.com/ PyRegex:ht...
    没技术的BUG开发攻城狮阅读 10,036评论 0 23
  • 忘了从哪收集的资料了,放这儿,以备不时之需。 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{...
    study_monkey阅读 5,242评论 0 7