赞
踩
题目一:写一个函数isValidUsername(str),判断用户输入的是不是合法的用户名(长度6-20个字符,只能包括字母、数字、下划线)
解答:
- function isValidUsername(str){
- return /^\w{6,20}$/.test(str)
- }
- console.log(isValidUsername('mxlwod789'))//true
- 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),判断用户输入的是不是手机号
解答:
- function isPhoneNum(str){
- return /^1[34578]\d{9}$/g.test(str)
- }
- console.log(isPhoneNum(13754879652))//true
- console.log(isPhoneNum(1648954875))//false
题目四:正则表达式的运行分为哪几个阶段?
解答:
1.编译
2.设定起始位置
3.尝试匹配
4.匹配失败的话,从下一位开始继续第3步
5.结果:匹配成功或失败
题目五:正则实例对象有哪些属性?
解答:
global、ingnoreCase、multiline、lastIndex、source
题目六:分别使用search、test、match、exec、replace以日期为例,提取出年月日
解答:
1、search
- var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
- var string = "2017-06-26";
- string.search(regex);
- console.log( RegExp.$1, RegExp.$2, RegExp.$3 );
- // => "2017" "06" "26"
2、test
- var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
- var string = "2017-06-26";
- regex.test(string);
- console.log( RegExp.$1, RegExp.$2, RegExp.$3 );
- // => "2017" "06" "26"
3、match(最常用)
- var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
- var string = "2017-06-26";
- console.log( string.match(regex) );
- // =>["2017-06-26", "2017", "06", "26", index: 0, input: "2017-06-26"]
4、exec
- var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
- var string = "2017-06-26";
- console.log( regex.exec(string) );
- // =>["2017-06-26", "2017", "06", "26", index: 0, input: "2017-06-26"]
5、replace
- var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;
- var string = "2017-06-26";
- var date = [];
- string.replace(regex, function(match, year, month, day) {
- date.push(year, month, day);
- });
- console.log(date);
- // => ["2017", "06", "26"]
题目七:分别使用search、test、match、exec判断一个字符串中是否有数字。
解答:
1、search
- var regex = /\d/;
- var string = "abc123";
- console.log( !!~string.search(regex) );
- // => true
2、test
- var regex = /\d/;
- var string = "abc123";
- console.log( regex.test(string) );
- // => true
3、match
- var regex = /\d/;
- var string = "abc123";
- console.log( !!string.match(regex) );
- // => true
5、exec
- var regex = /\d/;
- var string = "abc123";
- console.log( !!regex.exec(string) );
- // => 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),去除字符串两边的空白字符。
解答:
- function trim(str){
- return str.replace( /^\s*|\s*$/g,")
- }
- console.log(trim(' abc df fg '))
- //abc df fg
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。