本文实例总结了JS经典正则表达式笔试题。分享给大家供大家参考,具体如下:
一.复习字符串的传统操作
如何获取一个字符串中的数字字符,并按数组形式输出,如
dgfhfgh254bhku289fgdhdy675gfh
输出[254,289,675]
分析:循环用charAt()的方法获取到每一个子字符串,判断他是不是在0~9之间,是就把他扔到准备好的数组里
var str="dgfhfgh254bhku289fgdhdy675gfh";findNum(str);function findNum(){ var arr=[]; for(var i=0;i<str.length;i++){ if(str.charAt(i)<='9'&&str.charAt(i)>='0'){ arr.push(str.charAt(i)); alert(arr); } }}
但是这样会输出[2,5,4,2,8,9,6,7,5]和我们想要的结果有点偏差,于是我们需要一个新的空的字符串,每次碰到是数字走if,碰到字符走else,走else的时候把之前那些数字存放到新的空的字符串里,然后通过push添加到数组,然后清空字符串,一以便下次重新存放
var str="dgfhfgh254bhku289fgdhdy675";findNum(str);function findNum(){ var arr=[]; var result=""; for(var i=0;i<str.length;i++){ if(str.charAt(i)<='9'&&str.charAt(i)>='0'){ result+=str.charAt(i); //注意添加方向不要反了 } else{ if(result){ arr.push(result); result=""; } } } alert(arr)}
还有个隐患:如果最后以数字结尾,则最后不会进入else,最后几位数字会读不到,因此for循环外面再添加一遍else里面的if循环
二.什么是正则,有什么用
正则:也叫做规则,让计算机能够读懂人类的规则
*前端哪些地方用到正则?
比如注册页面输入用户名,我们给定一套规则,判断他输入的对不对
*范围?
正则都是用来操作字符串的(即不要用他去操作对象什么的)
*怎么写?
正则也是一个系统对象,跟数组、json一样,也有个写法规则
简写 var re=//; //只写两斜杠,浏览器会认为是注释,所以尽量不要给他为空,注意两斜杠之间不要有引号
全称 var re=new RegExp(); //Reg是正则的简写,Exp是表达式的简写
大部分情况用简写,只有一种情况用全称写法:正则需要传参的时候
注:全称写法用到/时,需要两个//,否则是转义字符
三.正则表达式的常用方法
1.test
正则去匹配字符串,如果匹配成功就返回真,匹配失败就返回假
写法:正则.test(字符串)
如:
var str='abcdef';var re=/b/; //bc一个整体也在字符串中,弹出true,但是写bd,弹出false,因为字符串中没有bd这么一个整体alert(re.test(str));
弹出true
扩展:
检测一个字符串是不是全是数字
var str='8621t56461';var re=//;if(re.test(str)){ alert("不全是数字");}else{ alert("全是数字");}
新闻热点
疑难解答
图片精选