文档章节

javascript中的正则表达式

writeademo
 writeademo
发布于 2016/10/22 22:32
字数 435
阅读 15
收藏 0

javascript中的正则表达式

字面量
var reg=/\bis\b/g
var reg=//

var reg=/\bis\b/;
eg:'is a is c'.replace(reg,'IS');
构造函数
var reg=new RegExp('\\bis\\b','g')


var reg=new RegExp('\\bis\\b','g');
eg:'is a ls iss is'.replace(reg,'ABC')
正则表达式由两种基本字符类型组成:
原义文本字符
a
元字符
有特殊含义的非字母字符
/b
* +? $ ^ .| \ () {} []
\f \t \cX
字符类
ab
我们可以使用元字符[]来构建一个简单类[abc]其中之一
eg:'a1b2c3b4'.replace(/[abc]/g,'X');
字符类取反
^反向类/负向类
eg:'a1b2c3b4'.replace(/[^abc]/g,'X');
范围类
[a-z] [a-zA-Z]
[1-10]
eg:'1233adfcADFAF'.replace(/[a-zA-Z]/g,'-')
预定义类
.回车换行外的所有字符
\d
\D
\s
\S
\w
\W非单词字符
边界匹配
^
$
\b
\B
eg:'this is a boy'.replace(/\bis\b/g,'0');
eg:'this is a boy'.replace(/is/g,'0');

量词
\d{3,6}

eg:'123456'.replace(/\d{3,6}?/,'x')非贪婪匹配
分组
(is)  (is|a|k)
eg:'sis our is is ousi'.replace(/(is)/g,'x')
反向引用
eg:'2015-12-25'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$3/$2/$1')
"25/12/2015"

前瞻
\w(?=\d)正则加断言
eg:'a2*3'.replace(/\w(?=\d)/g,'哈啊')

后顾
js属性
global
ignoreCase
multiline
var reg=/\w/;
reg.global;
reg.ignoreCase;
reg.multiline
reg.source
方法
test(str)

eg:var reg=/\w/g;
while(reg.test('ab')){
console.log(reg.lastIndex);
}
exec(str)
var reg=/.\w(\d)/g;
eg:var str='a1234r342t3435';
reg.exec(str);

split()
eg:'a1b2c3d4'.split(/\d/g);
replace()
replace(str,replaceStr)
replace(reg,replaceStr)
replace(reg,function)

function会在每次匹配替换的时候调用
有四个参数
1.匹配字符串
2.正则表达式分组内容,没有分组则没有该内容
3匹配项在字符串中的index;
4原字符串

eg:'aosod3f4g5'.replace(/(\d)/, function (match, group, index, normal)
    {   console.log(match + 'match');
    console.log(group + 'group');  
    console.log(index + 'index');  
    console.log(normal + 'normal');
    });

 

 

 

 

 

© 著作权归作者所有

writeademo
粉丝 25
博文 630
码字总数 229224
作品 0
东城
私信 提问
简单说 正则表达式——要注意lastIndex属性

说明 这篇文章,主要和大家聊聊JavaScript中RegExp对象的属性。 解释 每个RegExp对象都包含5个属性,source、global、ignoreCase、multiline、lastIndex。 source:是一个只读的字符串,包含...

FEWY
2017/07/10
0
0
8个实用的 JavaScript 测试及效验工具

JavaScript 是一款强大的广泛运用于现代Web站点及应用的脚本语言。作为一个技艺精湛的 Web 开发者,掌握JavaScript可以增强用户的使用体验,提供交互及富客户端等功能。 尽管JavaScript的语法...

小编辑
2010/04/15
4.5K
0
js中replace()方法使用注意

1.如果正则表达式中设置了修饰符g,那么源字符串中所有与模式匹配的子串都将替换成第二个参数指定的字符串;如果不带修饰符g,则只替换所有匹配的第一个子串。 2.replace()的第一个参数若是字...

依风听雨
2014/07/10
3.5K
0
JavaScript的简单复习

JavaScript的简单复习 JS的两种加载方式: 1.内部加载 内部加载,写在<script>标签内部 2.外部加载 写在<script>的src目录中,使用外部加载js文件的时候,js解析引擎不解析script标签体中的代码...

Lunqi
2015/08/07
58
0
JavaScript学习记录day9-标准对象

JavaScript学习记录day9-标准对象 [TOC] 在JavaScript的世界里,一切都是对象。 但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用操作符获取对象的类型,它总是返回一个字符...

ygqygq2
2018/06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

移动开发中的 Web:WebView、WebKit、JSCore、Web 优化、热修复、跨平台、Native、Hybrid……

移动开发领域近年来已经逐渐告别了野蛮生长的时期,进入了相对成熟的时代。而一直以来 Native 和 Web 的争论从未停止,通过开发者孜孜不倦的努力,Web 的效率和 Native 的体验也一直在寻求着...

编辑部的故事
29分钟前
14
0
MySQL8.0.17 - Multi-Valued Indexes 简述

本文主要简单介绍下8.0.17新引入的功能multi-valued index, 顾名思义,索引上对于同一个Primary key, 可以建立多个二级索引项,实际上已经对array类型的基础功能做了支持 (感觉官方未来一定...

阿里云官方博客
今天
12
0
make4.1降级 make-3.81、2错误

在编译 make-3.82 的时候出现如下错误提示 glob/glob.c:xxx: undefined reference to `__alloca'` 修改 /glob/glob.c // #if !defined __alloca && !defined __GNU_LIBRARY__ # ifdef __GNUC......

Domineering
今天
19
0
Rainbond集群的安装和运维的原理

本文将解读Rainbond集群的安装和运维的原理,使用户基本了解Rainbond的安装机制和运维重点,便于用户搭建大型Rainbond集群。 1.Rainbond集群节点概述 1.1 节点分类 属性 类型 说明 manage 管...

好雨云帮
今天
11
0
好程序员大数据学习路线分享UDF函数

1.为什么需要UDF? 1)、因为内部函数没法满足需求。 2)、hive它本身就是一个灵活框架,允许用自定义模块功能,如可以自定义UDF、serde、输入输出等。 2.UDF是什么? UDF:user difine fun...

好程序员官方
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部