当前位置:   article > 正文

【每日一题,冲刺秋招(3)】——正则表达式_isvalidusername

isvalidusername

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

解答:

  1. function isValidUsername(str){
  2. return /^\w{6,20}$/.test(str)
  3. }
  4. console.log(isValidUsername('mxlwod789'))//true
  5. console.log(isValidUsername('123fhy'))//false

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

解答:

/d: [0-9] 数字字符

\w: [a-zA-Z_0-9] 单词字符,字母、数字下划线 

\s: [\t\n\x0B\f\r] 空白符 

[a-zA-Z0-9]: 从小a到小z,大A到大Z,从0到9

\b: 单词边界 

.: [^\r\n] 除了回车符和换行符之外的所有字符

*: 出现零次或多次(任意次) 

+: 出现一次或多次(至少出现一次)

?: 出现零次或一次(最多出现一次)

x{3}: x出现三次

^: 以xxx开头 

$: 以xxx结尾


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

解答:

  1. function isPhoneNum(str){
  2. return /^1[34578]\d{9}$/g.test(str)
  3. }
  4. console.log(isPhoneNum(13754879652))//true
  5. console.log(isPhoneNum(1648954875))//false

题目四:正则表达式的运行分为哪几个阶段?

解答:

1.编译

2.设定起始位置

3.尝试匹配

4.匹配失败的话,从下一位开始继续第3步

5.结果:匹配成功或失败


题目五:正则实例对象有哪些属性?

解答:

global、ingnoreCase、multiline、lastIndex、source


题目六:分别使用search、test、match、exec、replace以日期为例,提取出年月日

解答:

1、search

  1. var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
  2. var string = "2017-06-26";
  3. string.search(regex);
  4. console.log( RegExp.$1, RegExp.$2, RegExp.$3 );
  5. // => "2017" "06" "26"

2、test

  1. var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
  2. var string = "2017-06-26";
  3. regex.test(string);
  4. console.log( RegExp.$1, RegExp.$2, RegExp.$3 );
  5. // => "2017" "06" "26"

3、match(最常用)

  1. var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
  2. var string = "2017-06-26";
  3. console.log( string.match(regex) );
  4. // =>["2017-06-26", "2017", "06", "26", index: 0, input: "2017-06-26"]

4、exec

  1. var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
  2. var string = "2017-06-26";
  3. console.log( regex.exec(string) );
  4. // =>["2017-06-26", "2017", "06", "26", index: 0, input: "2017-06-26"]

5、replace

  1. var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
  2. var string = "2017-06-26";
  3. var date = [];
  4. string.replace(regex, function(match, year, month, day) {
  5. date.push(year, month, day);
  6. });
  7. console.log(date);
  8. // => ["2017", "06", "26"]

题目七:分别使用search、test、match、exec判断一个字符串中是否有数字。

解答:

1、search

  1. var regex = /\d/;
  2. var string = "abc123";
  3. console.log( !!~string.search(regex) );
  4. // => true

2、test

  1. var regex = /\d/;
  2. var string = "abc123";
  3. console.log( regex.test(string) );
  4. // => true

3、match

  1. var regex = /\d/;
  2. var string = "abc123";
  3. console.log( !!string.match(regex) );
  4. // => true

5、exec

  1. var regex = /\d/;
  2. var string = "abc123";
  3. console.log( !!regex.exec(string) );
  4. // => true

题目八:正则表达式的作用有?

解答:

1.给定的字符串是否符合正则表达式的过滤逻辑(匹配)

2.可以通过正则表达式,从字符串中获取我们想要的特定部分(提取)

3.强大的字符串替换能力(替换)


题目九:关于身份证号,以下正确的正则表达式为( )

A.isIDCard=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;

B.isIDCard=/^[1-9]\d{7}((9\d)|(1[0-2]))(([0|1|2]\d)|3[9-1])\d{3}$/;

C.isIDCard=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;

D.isIDCard=/^[1-9]\d{5}[1-9]\d{3}((9\d)|(1[9-2]))(([0|1|2]\d)|3[9-1])\d{4}$/;

解答:

A选项是15位身份证号码:

 ^开头 
 [1-9] 第一位1-9中的一个 
 \d{7}七位数字(前六位省市县地区+二位年份) 
((0\d)|(1[0-2])) 月份 
(([0|1|2]\d)|3[0-1]) 日期 
\d{3}  三位数字(三位的校验位。(第十五位奇数代表男,偶数代表女),15位身份证不含X)
 $结尾 

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

解答:

  1. function trim(str){
  2. return str.replace( /^\s*|\s*$/g,")
  3. }
  4. console.log(trim(' abc df fg '))
  5. //abc df fg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/843664
推荐阅读
相关标签
  

闽ICP备14008679号