定义正则对象
-
构造函数方式
var reg = new RegExp('abc','g')
-
字面量方式
var reg = /abc/g
常用方法
-
search 查找字符串,查找第一次匹配字符的位置,返回第一次匹配的位置,否则返回-1。
var str="love you";
console.log(str.search(/o/g)); // 1
-
replace 将子串替换成需要的内容
var str="love you my dear";
console.log(str.replace(/my/g,'your'));
-
split 将一个字符串拆分一个数组
var str="love|you*my dear";
var arr=str.split(/\||\*|\s+/);
console.log(arr);
-
match 匹配一个字符串,返回一个类数组
// 全局匹配
var reg=/(\w)\s(\w)/g;
var str="love you my dear";
console.dir(str.match(reg)); // 0: "e y" , 1: "u m" , 2: "y d" , length: 3
常用匹配
-
匹配中文或字母
var reg1 = /([\u4E00-\u9FA5]|[A-Za-z])+/ // 只要包含中文或者字母就提示
var reg2 = /[^\x00-\xff]/ // 匹配双字节字符(包括汉字在内)
-
匹配电话号
var reg1 = /^(0[0-9]{2,3}(-?))?([2-9][0-9]{6,7})+((-?)[0-9]{1,4})?$/ // 中国固定电话号码
var reg2 = (\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} // 中国固定电话号码
var reg3 = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/ // 手机号码
var reg4 = ^((\+86)|(86))?(13)\d{9}$ // 手机号前带86或是+86的情况
var reg5 = (^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9}) // 电话号码与手机号码同时验证
var reg6 = (\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} // 中国电话号码(包括移动和固定电话)
var reg7 = (^\(?\d{3,4}[\)\-]?\d{5,10}$)|(^\[1358]d{10}$) // 手机号码电话号码同时验证
-
匹配日期
// 简单的日期判断(YYYY/MM/DD):
var reg1 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
// 演化的日期判断(YYYY/MM/DD| YY/MM/DD):
var reg2 = /^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$/
// 时间yyyy-MM-dd HH:MM:SS :
var reg3 = /^[1-9][0-9]{3}-(0?[1-9]|1[0|1|2])-(0?[1-9]|[1|2][0-9]|3[0|1]) (0?[1-9]|1[0-9]|2[0-3]):(0?[0-9]|[1|2|3|4|5][0-9]):(0?[0-9]|[1|2|3|4|5][0-9])$/
-
匹配邮箱
var reg = /^[0-9a-zA-Z]+@(([0-9a-zA-Z]+)[.])+[a-z]{2,4}$/
-
匹配身份证
var = /(^\d{15}$)|(\d{17}(?:\d|x|X)$)/
-
匹配空格
var reg1 = /(^\s*)|(\s*$)/ // 前后去空格
var reg2 = /\s+/ // 所有去空格
-
匹配数字
// 匹配非负整数(正整数 + 0):
var reg1 = /^\d+$/
// 匹配正整数:
var reg2 = /^[0-9]*[1-9][0-9]*$/
// 匹配非正整数(负整数 + 0):
var reg3 = /^((-\d+)|(0+))$/
// 匹配负整数:
var reg4 = /^-[0-9]*[1-9][0-9]*$/
// 匹配整数:
var reg5 = /^-?\d+$/
// 匹配非负浮点数(正浮点数 + 0):
var reg6 = /^\d+(\.\d+)?$/
// 匹配正浮点数:
var reg7 = /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/
// 匹配非正浮点数(负浮点数 + 0):
var reg8 = /^((-\d+(\.\d+)?)|(0+(\.0+)?))$/
// 匹配负浮点数:
var reg9 = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/
// 匹配浮点数:
var reg10 = /^(-?\d+)(\.\d+)?$/
-
匹配字母
// 匹配由26个英文字母组成的字符串:
var reg1 = /^[A-Za-z]+$/
// 匹配由26个英文字母的大写组成的字符串:
var reg2 = /^[A-Z]+$/
// 匹配由26个英文字母的小写组成的字符串:
var reg3 = /^[a-z]+$/
// 匹配由数字和26个英文字母组成的字符串:
var reg4 = /^[A-Za-z0-9]+$/
// 匹配由数字、26个英文字母或者下划线组成的字符串:
var reg5 = /^\w+$/
-
其他
// 匹配空行的正则表达式:
var reg1 = /\n[\s| ]*\r/
// 匹配HTML标记的正则表达式:
var reg2 = /<(.*)>.*<\/\1>|<(.*) \/>/
// 匹配首尾空格的正则表达式:
var reg3 = /(^\s*)|(\s*$)/
// 网络链接:
var reg4 = /(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?/
// 图片链接:
var reg5 = /(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?/
// 中国邮政编码:
var reg6 = /[1-9]{1}(\d+){5}/
// ip地址:
var reg7 = /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/
// 匹配网址URL的正则表达式:
var reg8 = /((http|ftp|https|file):\/\/([\w\-]+\.)+[\w\-]+(\/[\w\u4e00-\u9fa5\-\.\/?\@\%\!\&=\+\~\:\#\;\,]*)?)/