正则表达式:
\
本人常用的几种正则:
修饰符如下:
i ===> 无视大小写
g ===> 全局匹配,说白就是全部匹配
m ===> 多行匹配
方括号:
[abc] ===> 匹配括号里面的任何字符 限英文、大小写
[^abs] ===> 匹配不在括号内的字符
[0-9] ===> 匹配数字 0到9之间
[a-z] ===> 匹配26个小写字母之间
[A-Z] ===> 匹配26个大写字母之间
[A-z] ===>上面两个的结合
元字符:
. ===> 匹配单个字符 除换行与行结束符
\w ===> 匹配单词字符
\W ===> 匹配非单词字符
\d ===> 匹配数字
\s ===> 匹配空格
\S ===> 匹配非空格
\n ===> 匹配换行
[...]===> 匹配方括号里面的任意字符
[^...]===>匹配不在方括号里面的任意字符
量词:
+ ===> 匹配一个 || 多个 (至少一个)
* ===> 匹配0个 || 多个
? ===> 匹配一个或多个
{x} ===> 匹配前一项x次
{x,y} ===> 匹配前一项x次 不能超过y次
{x,} ===> 匹配前一项至少x个
$ ===> 匹配结尾
^ ===> 匹配开头
正则属性:
lastIndex ⇒ 下次匹配的起始位置 需要手动重置为0
正则方法:
RegExp.prototype.exec(string); // 检查字符串中正则表达式的匹配
RegExp.prototype.test(string); // 检测string是否匹配某个模式
使用:
var str = /\d+/g;
var str1= 29047332;
str.test(str1); // reg检测str1为数字 返回true 通常用来匹配验证类型 手机号等等
支持正则的String对象的方法如下:
String.prototype.search(reg);
// 检测字符串中的子字符串 || 检测正则匹配的子字符串
使用:
要检测的字符串.search(正则的相关逻辑); // 返回匹配到首个字符下标
String.prototype.match(reg); // 检测指定的值 || 正则的匹配
使用:
要检测的字符串.match(string/reg); // 可以是字符串 || 正则的匹配 返回检测到的值
var text =' Viscdisncs http://www.qinzb.cn/~david';
var reg = /(\w+):\/\/([\w.]+)\/(\S*)/;
var result = text.match(reg);
if(!result==null){
var fullurl = result[0]; // 0为完整匹配到的 http://www.qinzb.cn/~david
var protocol = result[1]; // http
var host = result[2]; // www.qinzb.cn;
var path = result[3]; // ~david
}
String.prototype.replace(reg/string,replacement);
// 替换某个字符串 可以是正则匹配模式
使用:
要替换的字符.replace(字符串直接量 /正则逻辑,要替换的内容);
String.prototype.split(string/reg,length); // 字符串分割成数组
使用:
要分割的字符.split(字符直接量/正则逻辑,指定分割数组长度)