在web前端笔试中,总是会遇到这样的笔试题:
例如: 清除一个字符串的前后的空白的字符
(一)挥刀准备功夫
正则表达式的基本语法:
1、Start
正则表达式总是以斜线起始和结束。
/.../
2 元字符 :是用于构建正则表达式的符号(用于连接字母和数字,创建高度描述性的文本模式)
1 . 匹配任何字符,换行符除外。
2 \d 匹配任何数字字符。
3 \w 匹配任何字符数字(字母或数字)字符。
4 \s 匹配空格(空格包括空白字符、tab、换行符、return/enter)
5 ^ 字符串需以模式起始。
6 $ 字符串需以模式结束。
7 | 让模式指定一连串可供选择的子模式。
View Code
3 限定符 :控制子模式出现于正则表达式的次数
1 * 限定符前的子模式必须出现0或多次。
2 + 限定符前的子模式必须出现1或多次。
3 ? 限定符前的子模式必须出现0或1次。
4 {n} 限定符前的子模式必须出现恰好n次。
View Code
4 字符类 以方括号围起【】
例如:
//定义正则表达式匹配0-9
var pattern = /[0-9]/;
//定义正则表达式匹配数字0-9及字母a-z
var pattern = /[0-9a-z]/;
如果需要转义的话,注意加上\
下面上代码:
1 function ClearSpace(Str)
2 {
4 var tempStr=Str.replace(/(^\s*)|(\s*)$/g,"");
5 return tempStr;
6 }
7 console.debug((" my name is hello world! ").length);
8 console.debug(ClearSpace(" my name is hello world! ").length);
View Code
结果图如下:
很明显可以看到 字符串的长度减少2 因为前后的空格已经被去掉;
解析:
var tempStr=Str.replace(/(^\s*)|(\s*)$/g,"");
首先调用了JS中String的replace的方法,
这个方法有两个参数
parm1:要替换的string或者正则表达式
Parm2:替换为的字符串,
返回值:替换后的字符串;
下面解析一下表达式:
看到分为两部分被“|”:表示前后两个子模可以选择 ,个人人为可以理解为 或 的意思;
(^\s*):^ 上面已经显示了属于元字符中的一个 代表字符串需以模式起始。
\s 匹配空格(空格包括空白字符、tab、换行符、return/enter)
右边的也是同样的道理,这样理解就ok了~~~
正则博大精深,还须一步步的走下去哇哇
以上纯属自己菜鸟的心得体会,与大家共勉,喜欢前端的小伙伴们,可以加我建的一个web前端交流群,目前就我一个群主 /(ㄒoㄒ)/~~群号:437866392