正则RegExp
正则是所有的编程语言里统一的语法,尽管执行方法不同,但是正则的写法是一样的,目的是为了处理字符串数据,处理的方式有剪切,验证格式,正则表达式写在两条正斜杠里【/】
// 基础
var reg = /123abc/
// 匹配开始【^】
// 必须是123开头的
var reg = /^123/ //123,123333,123....
// 匹配结束【$】
// 必须是123结束的
var reg = /123$/ //123,123123,...123
// 匹配【^】和【$】
var reg = /^123$/ //123,其他都不行
// 对比上面
var reg = /123/ //123,4412344,连在一起有出现就行
// 数量【{}】,连续的出现几次,参数可以是一个到两个
// 当参数是一个时表示必须是连续的重复出现这么多次
// 当参数是两个时,第一个参数是至少出现几次,第二个是最多出现几次,第二个参数不填{1,} 表示无限次
var reg = /4{2}/ //124433,44
var reg = /4{2,3}/ //12445,444123
// 数量的代表符号
【*】表示零次或者无限次,{0,}的意思
【+】表示一次或者无限次,{1,}的意思
【?】表示零次或者一次,{0,1}的意思
// 括号【()】表示一起
var reg = /14{2}/ //144
var reg = /(14){2}/ //1414
// 集合【[]】表示所包含的任意一个字符
var reg = /[0123]/
var reg = /[pdt]{5}/ // 15ptdp66 区间内任意的字符出现5次,不需要顺序
// 区间集合【[x-y]】,集合的一种简易写法
var reg = /[0-9]/ // 表示0到9的所有数字
var reg = /[a-z]/
var reg = /[A-Z]/
// 集合的反向【[^123]】
var reg = /[^123]/ //除了123外的所有
var reg = /[^0-9]/ // 除了0123456789之外的
// 点【.】
// 匹配除了 /n 外的任何单个字符
var reg = /^1.3$/ // 123,143,1a3
// 转义【\加符号】
var reg = /\./ // 被转义的点就是点的意思了,不是上面的点的意思了
var reg = /\\,\[,\],\$,\^/ //在正则里有含义的符号想要去除含义都需要转义,逗号在正则里没意义所以不需要转义
// 转义【\加字母】
var reg = /\d/ // 就是[0-9]的简写
var reg = /\D/ // 就是[^0-9]的简写
var reg = /\f/ // 换页符
var reg = /\n/ // 换行符
var reg = /\r/ // 回车符
var reg = /\s/ // 匹配一个空白字符,包括空格,换行换页回车
var reg = /\S/ // 非空白字符
var reg = /\w/ // 就是[A-Za-z0-9]的简写
var reg = /\W/ // 就是[^A-Za-z0-9]的简写
// 或者【x|y】
// 如果竖杠,竖杠两端的内容如果很长需要用括号包起来表示一个整体
var reg = /1|2/
var reg = /(^[1-3]$)|(^[6-9]$)/
常用正则
// 手机
var phone = /^[1]{1}[0-9]{10}/
// 身份证
var idCard = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
// 过滤表情符号
var emojoReg = /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/
js的正则方法
var reg = /\d+/
var str = "aaa111bbb222bbb"
reg.text(str) //最常用
str.replace(reg,newStr) //返回一个新的字符串
str.match(reg) // 返回一个数组,数组装着符合正则条件的字符串
str.split(reg) // 返回一个数组,数组装着没被正则匹配的被切割的字符串
上面的replace,match正则如果使用普通的正则只会匹配第一个符合的条件然后返回,如果想让全字符串匹配,可以使用for循环进行递归或者在正则最后的【/】后面加上字母【g】,这个【g】只有js
能用
var reg = /\d+/g
var str = "aaa111bbb222bbb"
str.replace(reg,newStr) //可以对比上面的代码的输出
str.match(reg) //可以对比上面的代码的输出
java的正则方法