您当前的位置:网站首页>JS>正则表达式基础 找JS教程就上ki4.cc (>^ω^<),正则表达式

正则表达式基础 找JS教程就上ki4.cc (>^ω^<),正则表达式

2020年07月03日 投稿作者: 围观人数:31

用JavaScript写一个js解释器 找JS教程就上ki4.cc (>^ω^<)

用js来编译js看起来是个高大上的东西,实际原理其实很简单,无非就是利用js对象属性可以用字符串表示 这个特性来实现的黑魔法罢了。之所以看起来那么深奥。

正则表达式

Regular Expression 使用单个字符串描述、匹配一系列符合某个句法规则的字符串

.代表任意字符

+代表一个或多个

()可以对其分组,$1可以获取分组的内容

\d代表数字

{}中可以写个数

[]中的元素是或的关系

^标示开头

$表示结尾

\b代表单词边界

var reg = / \bis\b /g; 匹配is字符

g代表global 全局替换,不添加的话,搜索到第一个就匹配停止了

i ignore case忽略大小写,默认大小写敏感

mmultiple lines多行搜索 将字符串中的换行符也当做一行


元字符

  • 原义文本字符

    微信小程序特有页面间传参方式 找JS教程就上ki4.cc (>^ω^<)

    小程序有自己专用的路由方法,在基础库 2.7.3 之后,小程序专门实现了自己特有的页面传参方式,wx.navigateTo()中的success属性,当然,现在这个方法只支持。

    例如: a b c

  • 元字符

    在正则表达式中有特殊含义的非字母字符

    * + ? $ ^ . | \ () {} []

字符类

  • [] 来构建一个简单的类,所谓的类是指符合某些特性的对象,是一个泛指而不是特指某个对象

    [abc]就是有其中的任意一个即可

  • 字符类取反

    加上^符号

    [^abc]匹配abc以外的字符

范围类

  • [a-z]来表示从a到z的任意字符
  • 这是个闭区间 也表示a和z的本身
  • 如果想匹配横线,可以直接在后边加一个 [a-b-]

js预定义类

字符 等价类 含义
. [^\r\n] 除了回车和换行符以外的所有字符
\d [0-9] 数字字符
\D [^0-9] 非数字字符
\s [\t\n\x0B\f\r] 空白符
\S [^\t\n\x0B\f\r] 非空白符
\w [a-zA-Z_0-9] 单词数字(字母数字下划线)
\W [^a-zA-Z_0-9] 非单词数字

边界

字符 含义
^ 以xx开始
$ 以xx结束
\b 单词边界
\B 非单词边界

量词

字符 含义
出现零次或者一次(最多出现一次)
+ 出现一次或多次(至少出现一次)
* 出现零次或多次(任意次)
{n} 出现n次
{n,m} 出现n到m次
{n,} 至少出现n次

贪婪与懒惰模式

 >'12345678'.replace(/\d{3,6}/,'X')

.>"X78"

正则表达式默认会最多去匹配

想使用飞贪婪模式 在量词后加上?即可

>'12345678'.replace(/\d{3,6}?/,'X')

.>"X45678"

分组

beyond{3} 是把d出现三次  量词作用于紧挨着的单词
(beyond){3}整个单词出现了三遍
  • 反向引用

    >'2017-06-29'.replace(/(\d{4})-(\d{2})-(\d{2})/,'$3/$2/$1')
    .>"29/06/2017"

    将每个小括号中的内容作为一个对象,可以使用这个对象

  • 忽略分组

    如果不想捕获某个分组,在分组内加上?:即可

推荐教程:《JS教程》

以上就是正则表达式基础的详细内容,更多请关注ki4导航其它相关文章!

JS中splice()方法是什么? 找JS教程就上ki4.cc (>^ω^<)

splice()方法是从数组中添加或删除项目,然后返回被删除的项目,该方法会改变原始数组,语法为【arrayObject.splice(index,howmany,item1,.....,itemX)】。

标签

版权说明
免责声明:本文文章内容由ki4导航网发布,但不代表本站的观点和立场,具体内容可自行甄别.