js正则表达式

原文地址

正则表达式(英语:Regular Expression)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

1、正则表达式的定义:

显示声明: new RegExp(“正则表达式主体”, 修饰符(可选)),例 new RegExp(“a”, g)
隐式声明:/正则表达式主体/修饰符(可选),例 /a/g

2、正则表达式的修饰符:

i:忽略大小写(ignore)将匹配设置为不区分大小写,搜索时不区分大小写: A 和 a 没有区别。
m:多行匹配(multi line)使边界字符 ^ 和 $ 匹配每一行的开头和结尾,记住是多行,而不是整个字符串的开头和结尾。
g:全局匹配(global)查找所有的匹配项。
3、正则表达式的元字符: 正则表达式中自负分为普通自负和元字符,元字符是指有特殊意义的字符

量词:

// ?:一个或零个
// +:最少一个
// *:最少零个
// {n}:n个
// {n,m}:最少n个,最多m个,n到m之间
// {n,}:最少n个

边界

// ^:匹配以什么开头
// $:以什么结尾
// \b:单词边界
// \B:非单词边界

范围

// [abc]:表示abc字符中的某一个
// [a-z]:表示a-z中的某一个,包含a,b,c…,z,例:[a-zA-Z]:所有的字母中的某个字母,[0-9]所有的数字中的某个数字
// [^a]:非字母a的任意字符

分组

// ():将正则表达式分组

// |逻辑或,(a|b)就是a或着b

预定义元字符

// .:通配符,表示除回车换行外的所有字符。
// \d:匹配任意一个数字字符,等价于[0-9]
// \D:匹配任意一个非数字字符,等价于[^0-9]
// \w:匹配字母数字下划线中任意一个字符,等价于[a-zA-Z0-9_]
// \W:匹配非字母数字下划线中任意一个字符,等价于[^a-zA-Z0-9_]
// \s:匹配一个空格
// \S:匹配一个非空格

3、贪婪模式与非贪婪模式

贪婪模式:/a{1,10}/,这个表达式中量词是一个范围,正则表达式会按照最大限度的去匹配字符串,这种模式就是贪婪模式;

非贪婪模式:启用非贪婪模式就是在量词之后加一个问号/a{1,10}?/,正则表达式会匹配最小限度的字符串;

4、断言

// ?=
// ?!

5、正则表达式常用的方法:

// test:正则匹配,字符串符合正则规则返回true,反之为false;例:/a/.test(“a”) // true
// exec:正则捕获,返回一个数组,第一项是与正则表达式匹配的文本,之后的项是与正则表达的分组所匹配的文本;返回的数组还有两个属性,index,匹配文本的第一个字符所在的位置,input,传输的字符串

6、字符串与正则相关的方法:

// split:字符串分割成数组
// replace:字符串替换
// search:字符串查找
// match:字符串匹配

7、常用的正则:

1、Email地址:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
2、域名:/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?/
3、手机号码:/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/
4、身份证号(15位、18位数字):/^\d{15}|\d{18}$/
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript正则表达式和Java正则表达式在语法上有一些差异,但是它们的基本概念和用法是相似的。下面是将JavaScript正则表达式转换为Java正则表达式的一些常见规则: 1. 语法差异: - JavaScript正则表达式使用斜杠(/)作为定界符,而Java正则表达式使用双引号(")作为定界符。 - JavaScript正则表达式中的特殊字符需要进行转义,而Java正则表达式中的特殊字符不需要转义。 2. 字符类: - JavaScript正则表达式中的字符类使用方括号([])表示,而Java正则表达式中使用方括号([])或者Unicode转义(\p{...})表示。 - JavaScript正则表达式中的字符类可以使用连字符(-)表示范围,而Java正则表达式中需要使用Unicode转义(\uXXXX)表示范围。 3. 量词: - JavaScript正则表达式中的量词使用花括号({})表示,而Java正则表达式中使用花括号({})或者问号(?)表示。 - JavaScript正则表达式中的贪婪量词默认是贪婪模式,而Java正则表达式中的贪婪量词需要在后面添加问号(?)来表示非贪婪模式。 4. 边界匹配: - JavaScript正则表达式中的边界匹配使用插入符号(^)和美元符号($)表示,而Java正则表达式中使用\A和\Z表示。 5. 其他差异: - JavaScript正则表达式中的捕获组使用圆括号(())表示,而Java正则表达式中使用圆括号(())或者方括号([])表示。 - JavaScript正则表达式中的反向引用使用反斜杠加数字(\1、\2等)表示,而Java正则表达式中使用美元符号加数字($1、$2等)表示。 以上是一些常见的JavaScript正则表达式转换为Java正则表达式的规则。具体转换时,还需要根据具体的正则表达式进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值