正则表达式

2016-08-08  本文已影响0人  王康_Wang
1. \d\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^$分别是什么?
2.贪婪模式和非贪婪模式指什么?

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


###代码题

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

- ```
function trim(str) {
    var newStr = str.replace(/^\s+|\s+$/g,'');
    return newStr;
}    
2. 使用实现 addClass(el, cls)hasClass(el, cls)removeClass(el,cls),使用正则

#####3. 写一个函数```isEmail(str)```,判断用户输入的是不是邮箱
- ```
  function isEmail(str) {
    var reg = /^\w+@\w+\.[a-z]+$/;
    return (reg.test(str));
  }
4. 写一个函数isPhoneNum(str),判断用户输入的是不是手机号

#####5. 写一个函数```isValidUsername(str)```,判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)
- ```
  function isValidUsername(str) {
    var reg = /^\w{6,20}$/;
    return reg.test(str);
  }
6. 写一个函数isValidPassword(str), 判断用户输入的是不是合法密码(长度6-20个字符,包括大写字母、小写字母、数字、下划线至少两种)

#####7. 写一个正则表达式,得到如下字符串里所有的颜色(#121212)
- ```
  var re = /#[0-9a-f]{6}/ig;
  var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee #fd2 "
  alert( subj.match(re) )  // #121212,#AA00ef
8. 下面代码输出什么? 为什么? 改写代码,让其输出hunger, world.
- ```
  var str = 'hello  "hunger" , hello "world"';
  function fn(str) {
    var pat =  /".*?"/g;
    var arr = str.match(pat);
    for (var i = 0; i < arr.length; i++) {
        arr[i] = arr[i].replace(/"*/g, '');
    }
    return (arr.join(','));
  }
  fn(str);  // "hunger,world"
9. 补全如下正则表达式,输出字符串中的注释内容。(可尝试使用贪婪模式和非贪婪模式两种方法)

// 非贪婪模式
str = '.. .. .. '
re = /<.?[\n].?>/g;
str.match(re) // '', ''
// 贪婪模式
str = '.. .. .. '
re = /<[^>]
>/g;
str.match(re) // '', ''


#####10. 补全如下正则表达式
- ```
  var re = /<[^>]+>/g;
  var str = '<> <a href="/"> <input type="radio" checked> <b>'
  str.match(re) // '<a href="/">', '<input type="radio" checked>', '<b>'
上一篇 下一篇

猜你喜欢

热点阅读