什么是正则表达式?
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
简单来说:就是进行与数据相关的工作(数据采集,数据过滤,数据校验等)。
为什么要用正则表达式?
(因为真的很方便!!!)这里举一个小案例。
1判断一个字符串中是否有数字?如果有,返回true;否则返回false.
正常方法:
遍历字符串,判断每个字符,将字符转换数字,非数字的话还需要转化。。。
function containsNumber(str) {
for(var i=0;i<str.length;i++){
var value=parseInt(str.charAt(i));
if(!isNaN(value))
{
return true;
}
}
return false;
}
正则表达式方法
function containsNumber(str)
{
var d=/\d/;
return d.test(str);
}
完全ko传统方法,简单快捷高效…
正则表达式怎么用
下图是所有的元字符,是不是很多?其实经常用的不太多。要写出漂亮的正则表达式,这个一定要记牢。
正则表达式 - 元字符
下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为:
字符 | 描述 |
---|---|
\ | 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,‘n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\’ 匹配 “” 而 “(” 则匹配 “(”。 |
^ | 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。 |
$ | 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。 |
* | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。 |
+ | 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”& |