JS实现正则表达式
一、创建正则表达式
一共有两种方式:
1.直接量:var re = /[0-9]*/;
2.通过RegExp对象的构造函数:var re = RegExp("[0-9]*","i");
二、RegExp中正则表达式的属性与方法,以及String中常用的匹配字符串的方法
1.RegExp():构造函数,有两个参数,第一个参数是正则表达式,第二个参数是表示使用什么样的模式来匹配。第二个参数可以省略。
2.exec():一个在字符串中执行查找匹配的RegExp方法,它返回一个数组(未匹配到则返回null)。该方法有一个参数,表示要匹配的字符串
- var re = RegExp("[0-9]{2}");//匹配两个数字
- var regex = re.exec(1234567);//返回的是一个数据["12", index: 0, input: "1234567"]
exec()
3.test():一个在字符串中测试是否匹配的RegExp方法,它返回true或false。该方法有一个参数,表示要匹配的字符串
- var re = new RegExp("[0-9]{2}");
- var result = re.test(1234567);
test()
以下是String中匹配字符串的方法
4.match():一个在字符串中执行查找匹配的String方法,它返回一个数组或者在未匹配到时返回null。
- var re = new RegExp("[0-9]{2}");
- var result = "1234567".match(re);//结果["12"]
match()
5.search():一个在字符串中测试匹配的String方法,它返回匹配到的位置索引,或者在失败时返回-1。
- var re = new RegExp("[0-9]{3}");
- var result = "jack12314563".search(re);//结果 4
search()
6.replace():一个在字符串中执行查找匹配的String方法,并且使用替换字符串替换掉匹配到的子字符串。
- var re = new RegExp("([0-9]{3})");
- var result = "jack123tom".replace(re,'数字');//jack数字tom
replace()
7.split():一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中的String方法。
- var re = new RegExp("([,,])");
- var result = "jack,tom,superman,老王,老李".split(re);//["jack", ",", "tom", ",", "superman", ",", "老王", ",", "老李"]
- var result = "jack,tom,superman,老王,老李".split(re,3);//["jack", ",", "tom"]
三、使用模式来匹配字符串
在JS中有三种模式:
g:执行全局搜索,默认,在查找到匹配的情况下是停止查找的。如果使用g模式匹配的话,会找到所有的匹配。
- var re = new RegExp("1([0-9]*?)3","g");
- var result = "12314563".match(re);//结果 ["123", "14563"]
g模式下的匹配
i:忽略大小写的匹配
- var re = new RegExp("jack","i");
- var result = re.exec("JACK TELL ME");//结果 ["JACK", index: 0, input: "JACK TELL ME"]
i模式下的匹配
m:多行下的模式匹配,其中^表示行的开始,$表示行的结尾。
- var re = new RegExp(".*jack$","m");
- var result = re.exec("jack TELL ME\ntom TELL jack");//结果 ["tom TELL jack", index: 13, input: "jack TELL ME↵tom TELL jack"]
m模式下的匹配
四、例子
//查找字符串中所有的邮箱
var re = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/gi;
var result = "tom@qq.com这是谁的邮箱,厦门:1234567@163.com,还有这个 google@gmail.com".match(re);
console.log(result);//["tom@qq.com", "1234567@163.com", "google@gmail.com"]
以上资源部分来源于:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
JS实现正则表达式的更多相关文章
- js常用正则表达式2
字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对 ...
- js之正则表达式(上)
1.正则表达式的创建方式 两种方式创建:通过new修饰符创建和字面量的方式创建 1>new修饰符方式创建 var b2=new RegExp('Box','ig'); //第二个参数是 模式字符 ...
- Js用正则表达式验证字符串
js 常用正则表达式表单验证代码 作者: 字体:[增加 减小] 类型:转载 js 常用正则表达式表单验证代码,以后大家就可以直接使用了. 正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模 ...
- AngularJS进阶(十三)JS利用正则表达式校验手机号
JS利用正则表达式校验手机号 注:请点击此处进行充电! 绪 由于项目需求,需要在前端实现手机号码的校验.当然了,对于基本的格式校验应该放在客户端进行,而不需要再将待校验的手机号发送至服务端,在服务端完 ...
- JS常用正则表达式备忘录
摘要: 玩转正则表达式. 原文:JS常用正则表达式备忘录 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 正则表达式或"regex"用于匹配字符串的各个部分 下面是 ...
- JS的正则表达式及回文
function palindrome(str) { str = str.replace(/\s/g,"").replace(/[^a-zA-Z0-9]/g,"" ...
- JS的正则表达式简介
1.JS的正则表达式 1.1 简介 JS的正则表达式比较简单,总体上只分为两个功能:一个是test——用于匹配字符串是否符合规定的正则表达式规则:另外一个是exec——用于获取匹配到的数据. 1.2 ...
- Js与正则表达式
原本接着上面的章节,这一章节应该是写 Jquery事件的,由工作需要,暂时横插一篇正则表达式的学习,这里是边学边记录,错误之处,希望指正,提拔一二,不甚感激! 此章节有 1.1 正则表达式的定义 1. ...
- JS 利用正则表达式替换字符串
JS 利用正则表达式替换字符串 博客分类: JavaScript 学习资料 Java代码 收藏代码 JS 利用正则表达式替换字符串 var data = "123123,213,12312, ...
- js常用正则表达式,滚蛋吧!你们测试组bug,让你挑
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
随机推荐
- hdu1071
#include <iostream> #include <stdio.h> using namespace std; int main() { int t; double x ...
- Sharepoint2013商务智能学习笔记之简单概述(一)
SharePoint 2013 中的商业智能 (BI) 提供集 Microsoft Office 应用程序和其他 Microsoft 技术于一体的全面的 BI 工具.这些 BI 工具有:Excel 2 ...
- 【maven setting.xml】
<!--声明语句--> <?xml version="1.0" encoding="UTF-8"?> <settings xmln ...
- C#类的成员(字段、属性、方法)
前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态成员(static)和非静态成员 b.静态成员用static标识,不标识 ...
- elasticsearch 增删改流程和写一致性
增删改流程: 1. 客户端和任一节点(假设 Node1)发出请求,这个node就是coordinating node(协调节点) 2. coordinating node,对document进行路由, ...
- cogs 2123. [HZOI 2015] Glass Beads
2123. [HZOI 2015] Glass Beads ★★★ 输入文件:MinRepresentations.in 输出文件:MinRepresentations.out 简单对比时 ...
- 剑指Offer的学习笔记(C#篇)-- 旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...
- Pipenv: Python包管理神器
Pipenv旨在将最好的包管理机制(bundler, composer, npm, cargo, yarn等等)带到Python中去. 它会为你的项目自动创建和管理virtualenv,也会在安装和移 ...
- 历年NOIP真题总结
前言:最近把历年的NOIP真题肝了一遍(还有3个紫题先咕掉了),主要是到1998年的提高组的题.把题目的做题简要思路搁在这儿,一个是为了考前翻一翻,想想自己的哪些思路要梳理的什么什么的,反正怎么说呢, ...
- 微信小程序 —— 微信小程序解析html富文本插件wxParse
下载并把wxParse放到小程序的目录中 github下载地址:https://github.com/icindy/wxParse 一.基本使用方法 1. Copy文件夹wxParse,把wxPars ...