Javascript正则对象方法与字符串正则方法总结
正则对象
- var reg = new Regexp('abc','gi')
- var reg = /abc/ig
正则方法
- test方法(测试某个字符串是否匹配)
var str = 'abc123';
var ismatch = /[a-z]+\d+$/.test(str);
console.log(ismatch); //true
- exec方法(捕获字符串)
var str = 'abcd123';
var reg = /([a-z]{1})/g; //如果没有g,每次从开头匹配
var arr = reg.exec(str);
while(arr){
console.log(arr);
arr = reg.exec(str);
}
返回结果:
["a", //总体匹配的字符串
"a", //第一个分组捕获的结果
.., //第..个分组捕获的结果
index: 0 //当前匹配到的字符串所处位置
input: "abcd123" //原始字符串
]
["b", "b", index: 1, input: "abcd123"]
["c", "c", index: 2, input: "abcd123"]
["d", "d", index: 3, input: "abcd123"]
如果没有g,每次从头匹配,调用结果都一样,放到while会死循环。
如果有g,每次正则对象的lastIndex前进到当前匹配末尾。
- compile 方法(编译正则)
var reg = /[a-z]{1}/
var str = 'abcde123';
reg.compile(reg); //接收一个正则参数,进行编译
console.log(reg.test(str));
适用于多次调用正则,提高性能。
String对象的方法
- seach方法(返回第一次匹配结果,修饰符g无效)
var str = 'hello world!';
str.search(/o/); //输出4
- replace方法(正则替换字符串)
var str = 'hello world! hello js';
str.replace(/hello/g,'hi'); //输出: hi world! hi js
加g表示替换所有,不加g只替换第一个
- split方法(字符串拆分为数组)
var str = 'abc-def=ghi|jkl';
var array = str.split(/[^a-z]{1}/);
//输出 ["abc", "def", "ghi", "jkl"]
- match方法(获取字符串)
var str = 'abc123def456hij789';
str.match(/(\d+)/);
// 输出["123", "123", index: 3, input: "abc123def456hij789"] 跟exec方法一致,并带额外属性
var str = 'abc123def456hij789';
str.match(/(\d+)/g);
//输出 ["123", "456", "789"]
全局下返回所有匹配结果,非全局下与正则对象的exec方法一致
Javascript正则对象方法与字符串正则方法总结的更多相关文章
- JavaScript:在JS中截取字符串的方法
这篇主要说一说截取字符串的方法,用于帮助自己缕清方法的作用,参数的意义,返回值,是否对于原来的字符串进行了操作等. 在javascript中,常见的截取字符串的方法有slice().substring ...
- js正则表达式test方法、exec方法与字符串search方法区别
1.正则表达式test方法 test() 方法用于检测一个字符串是否匹配某个模式 返回值: 如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 fal ...
- JS基础语法---String对象下的方法(字符串的方法)
实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法 静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调用的) 字符串的常用属性: . ...
- JavaScript Array() 对象:push() 和 join() 方法
<script> var fruits = ["Banana", "Orange", "Apple", "Mango& ...
- JavaScript 复制对象【Object.assign方法无法实现深复制】
在JavaScript这门语言中,数据类型分为两大类:基本数据类型和复杂数据类型.基本数据类型包括Number.Boolean.String.Null.String.Symbol(ES6 新增),而复 ...
- javaScript定义对象的方法
转自souhu新闻http://news.sohu.com/20110215/n279335637.shtml? javascript定义对象的几种简单方法 1.构造函数方式,全部属性及对象的方法都放 ...
- 关于使用format()方法格式化字符串,读这一篇就够了!
从Python 2.6开始,又出现了另外一种格式化字符串的方法——format()方法.format()方法是字符串众多方法中的一个,调用这个方法时要使用点操作符(.),该方法返回一个格式化好的字符串 ...
- javascript的对象与字符串相互转换
因为对象不利于网络传输,因此要转换成字符串,转换成字符串之后又要考虑怎么将这个字符串转换回对象,以便取得对象中的属性. 常用的做法是将对象转换为JSON字符串,这里的转换方法也是用的JSON官方提供的 ...
- js 字符串转方法,this域绑定
闲着没事,开发一个列表页面配置的功能,其中涉及到了按钮点击事件,在页面进行编辑,保存到数据库中.写好的js脚本,function是字符串格式,所以要让生成的脚本生效,还要做一些操作. 1.首先保存在数 ...
随机推荐
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
- Fis3的前端工程化之路[三大特性篇之声明依赖]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- 【翻译】MongoDB指南/聚合——聚合管道
[原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...
- Java学习之反射机制及应用场景
前言: 最近公司正在进行业务组件化进程,其中的路由实现用到了Java的反射机制,既然用到了就想着好好学习总结一下,其实无论是之前的EventBus 2.x版本还是Retrofit.早期的View注解框 ...
- javascript中变量提升的理解
网上找了两个经典的例子 var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); // 10 var ...
- BPM应用开发解决方案分享
一.需求分析企业整体管理是一个完整的体系,如果 把这个体系比做一个拼图,企业信息化通过各个业务系统覆盖了一部分业务. 企业通过采购实施通用软件的方式,覆盖了企业的核心业务和专业化业务然而系统只满足了部 ...
- iOS开源项目周报1229
由OpenDigg 出品的iOS开源项目周报第三期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. Ma ...
- VS2015墙内创建ionic2
开始学习ionic2,试验各种方法,感觉以下是紧跟rc版本的最佳方案 STEP1 设置cnpm npm install -g cnpm --registry=https://registry.npm. ...
- ORACLE中STATUS为INACTIVE但是SERVER为SHARED状态的会话浅析
我们知道当ORACLE数据库启用共享服务器模式时,通过共享服务器模式连接到数据库的会话是有一些特征的.在v$session里面,其SERVER的状态一般为SHARED和NONE, 为SHARED时,表 ...
- Hadoop
Hadoop应用场景 Hadoop是专为离线处理和大规模数据分析而设计的,它并不适合那种对几个记录随机读写的在线事务处理模式. 大数据存储:Hadoop最适合一次写入.多次读取的数据存储需求,如数据仓 ...