正则规则:
标志位
跟在正则表达式后面 如/^a/g
g 全局的,匹配多次 准确含义随具体方法而变
i 大小写不敏感(忽略大小写)
w 多行(^和$能匹配行结束符)
常用字符意义
? 表示 出现0次或者1次 可选的意思
+ 表示出现1次或者多次
* 表示出现0次或者多次
\ 转义字符 如 “\/” 表示一个“/”
^ 写在开头 表示已这个匹配的规则开头
$ 写在结尾 表示已这个匹配的规则结束
| 表示或者关系
分组有四种
(? . . . ) 表示一个可选的非捕获型分组
( . . . ) 表示一个捕获型分组
(?= . . . ) 向前正向匹配 类似非捕获型分,这个组匹配完后,文本倒回它开始的地方匹配,实际上不
匹配任何东西不是好的特性尽量不用
(?! . . . ) 向前负向匹配 匹配失败时候进行匹配 不是好的特性尽量不用
[ . . . ] 表示一个字符类
{0,3} 表示出现0到3次
[^ . . ] 表示匹配除了括号内的规则
自己测过的一些正则表达式 和 书上摘抄收集
/^(([1-9]{1}\d*)|([0]{1}))(\.(\d)+)?$/ 小数 或整数 小数位数N位
/^(([1-9]{1}\d*)|([0]{1}))(\.(\d){1,2})?$/ 小数 或整数 1或者2位
/^([1-9][0-9]*|0)?$/i 匹配自然数
/^(0)|([-]?((\d+\.)|([1-9]{1}))\d*)$/i 匹配一个有理数 或者下面这种
/^\-?([1-9][0-9]*|0)(\.[0-9]+)?$/i; 匹配一个有理数
/^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i; 匹配一个数字,包含指数
/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/; 匹配URL
var reg1 = new RegExp(/[\u4E00-\u9FA5]/g); 中文正则
var reg = /[\u4E00-\u9FA5]/;
//去空格
function Trim (str){
return str.replace(/(^\s*)|(\s*$)/g, "");
}
常用方法
String.match(正则)
String.replace(正则,替换的字符)
正则.exec() 返回匹配的 字符数组
正则.test() 返回true false
var reg = new RegExp(/[.jpg]$|[.png]$/i);
var s = "xx.jpg";
alert(reg.test(s))//true