第五篇、javascript正则表达式二
一、内容概要
1)创建着呢规则表达式对象的两种方法
2)正则表达式的常用属性和方法
3)string对象常用方法中可以使用正则表达式
4)ES中其他预定义的对象:Math、Date、Number、Booloean...
二、创建正则表达式对象的两种方法
- 直接量表示法: var regexp=/式子/igm; 缺点:式子不能是string类型
- 对象创建法: var regexp=new RegExp(‘式子’,‘igm’); 式子里面必须是string类型
正则表达式的用法有两种
1)regexp.xxx(string) 使用RegExp 检测String 如regexp.test(string)
test()判断真假 /exec()返回值
2)string.yyy(regexp) 使用string方法,把RegExp作为参数
replace() / search() /match /split()
三、正则表达式的常用属性和方法

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h2>
<button onclick="testRegexProperty()">
测试RegExp对象的常用属性
</button>
</h2>
<script>
//学号都必须以S、G、D开头,后面跟4位数字,如 G1588 D0102
var txt="D0102"; //假设用户输入的是一个学号
//var regexp=/^([sgd])\d{4}/i;
var regexp=/^([sgd])(\d{})/i; //调用$必须是分组里面的内容
console.log(regexp.text(txt));
console.log(RegExp.$); //如果要调用$必须要用RegExp来调用
console.log(RegExp.$); //保存着最近第二次匹配的内容
console.log(RegExp.$);
console.log(RegExp.$); </script>
</body>
</html>
实例代码
var arr1="Tm电话为13122345678,att电话为1512345678";
var regexp=/[]\d{}/g; //查找电话
console.log(regexp.lastIndex); //指定下一次从哪里开始寻找
console.log(regexp.test(arr1)); //检测 true
console.log(regexp.test(arr1)); //true
console.log(regexp.test(arr1)); //false 原因是因为lastIndex在末尾,从末尾开始匹配,当然是false
console.log(regexp.lastIndex); //
注意点
方法:

1)regexp.xxx(string) 使用RegExp 检测String 如regexp.test(string)
test()判断真假 /exec()返回值
var txt="Tm电话为13122345678att电话为15123456781";
var regexp=/[]\d{}/g; //必须要有g标志位
console.log(regexp.txt); // console.log(regexp.exec(txt));
// console.log(regexp.exec(txt));
//打印出一段文本中所有的电话号码
while(true){
var arr=regexp.exec(txt);
if(arr==null){
break;
}
console.log(arr[]); //这里打印出电话号(相当于一个数组)
}
查找电话号码
2)string.yyy(regexp) 使用string方法,把RegExp作为参数
replace() / search() /match /split()
一、split方法
strObject.split(str/regexp,[howmany])
使用一个指定的字符串或者正则表达式,对元字符串进行拆分,返回才的的字符串数组
如果指定了howmany属性,则只返回拆的前howmany个字串
var data="how are you";
var regexp=/\s+/;
var arr=data.split(regexp);
console.log(arr); //["how","are","you",""]
split方法
二、replace方法
strObject.replace(substring/regexp,replacement)
对字符串中特定格式的字串进行替换,返回替换后的结果
第一个参数既可以是一个固定的字串,也可以是一个正则表达式对象
var regexp = /(red|blue|green)/ig;
var data="Flowers are red,blue.yellow,or green";
document.write(data);
var result=data.replace(regexp,"<span style='color:$1;'>$1</span>");
document.write(result);
三、search方法
strObject.seach(regexp)
返回第一次出现匹配指定正则表达式字串的下标,如果没有匹配则返回-1
与indexOf()作用类似,但是indexOf不支持正则表达式 如:var aa=ss@1223 var regexp=aa.indexOf(@)
var data ="He does told to do";
var regexp = /\bdo\b/ig;
console.log(data.search(regexp)); // 上面是找到do的下标 \b是边界
四、match方法
strObject.match(substring/regexp)
返回一个或者多个字串/正则表达式的匹配
与indexOf()方法类似,但是它返回匹配的值,而不是匹配字符串所在的下标
var txt="Tm电话为13122345678att电话为15123456781";
var regexp=/[]\d{}/g; //必须要有g标志位
arr=txt.match(regexp);
console.log(arr);
console.log("查找完毕"); 查找出的结果
["", ""]
test2.html: 查找完毕
查找电话号码
总结
replace()* 替换正则表达式可以匹配字串
seach() 替换正则表达式可以匹配字串
match 返回所有匹配正则表达式的字串
splite()* 使用正则表达式对字符串进行拆分
习题:
1、去除一个字符串开头和结尾的空白字符
用正则表达式 /^\s|\s$/之后用replace方法
第五篇、javascript正则表达式二的更多相关文章
- javascript 正则表达式(二)
/* 正则表达式方法:test(),exec(),String对象方法:match(),search(),replace(),split() 1.test()方法: 用法: regexp对象实例.t ...
- javascript正则表达式(二)——方法
正则表达式规则见:http://www.cnblogs.com/wishyouhappy/p/3756812.html,下面说明相关方法 String相关方法 概括: search() replace ...
- 初学JavaScript正则表达式(二)
正则表达式的实例化与标识符 字面量: var reg = /\bis\b/g // \b--字符边界 g全文搜索 查找单词为is的字符 He is a boy. IS He? 构造函数: var re ...
- 第五篇、C_二叉搜索树
1.二叉树的查找功能的时间复杂度比链表的好 2.删除节点的稍微复杂点 >没有节点,直接删除 >只有左节点(或者右节点),直接用该节点的左节点(或者右节点)替代要删除的节点 >有左节点 ...
- 前端开发【第三篇: JavaScript基础】
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...
- javascript正则表达式(一)——语法
前言 js中类RegExp类表示正则表达式,具有强大的模式匹配.文本检索和替换功能.正则表达式的模式规则是由一个字符序列组成,包括所有字母和数字在内,大多数的字符都是按照直接量匹配字符,某些特殊字符并 ...
- 正则表达式 第五篇:C# 正则表达式
原文:正则表达式 第五篇:C# 正则表达式 本文整理C#正则表达式的元字符,正则表达式是由字符构成的表达式,每个字符代表一个规则,表达式中的字符分为两种类型:普通字符和元字符.普通字符是指字面含义不变 ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识
本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
随机推荐
- C++类型转换运算符 static_cast,dynamic_cast,reinterpret_cast,const_cast
类型转换是一种让程序猿可以临时或永久性改变编译器对对象的解释机制.可改变对象解释方式的运算符称为类型转换运算符. 为何须要进行类型转换 通常为了实现使用不同环境的个人和厂商编写的模块可以相互调用和协作 ...
- Maven环境下搭建SSH框架
© 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Maven:3.3.9 Struts2:2.5.10 Spring:4.3.8.RELEASE Hibernate:5.1.7.Fina ...
- IOS 10 微信 ajax readystate=0 status=0 解决方法
最近做了一个 基于微信访问的网页系统 发现IOS10.2.1 版本 访问的时候 AJAX报错,安卓和IOS11.4.1 没有这样的问题. 通过Fiddler抓包发现,AJAX请求时 报错信息为 {& ...
- QT项目性能调优小记
最近的项目用到了QT 5.5,项目在运行过程中出现了一段时间CPU占用率持续25%,并频繁断网的情况,遂决定对项目性能进行优化. 优化工具也是VS2010自带的性能分析工具,具体的使用方法参见:htt ...
- ubuntu环境 rake aborted!
错误: rake aborted! Gem::LoadError: You have already activated rake 10.3.2, but your Gemfile requires ...
- Unity3D占用内存太大怎么解决呢?
最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个 ...
- 在Ubuntu下利用Eclipse开发FFmpeg配置小结
首先需要编译FFmpeg得到头文件和lib文件,参见:在Ubuntu下编译FFmpeg 选择File-New-C Project 选择Executable下的Empty Project,右侧选择Lin ...
- Java学习篇之---json-lib(Maven)
json-lib(Maven) java中用于解释json的主流工具有org.json.json-lib与gson.本篇文章介绍json-lib. 项目中要用到json-lib.在pom.xml文件里 ...
- 【hiho一下】第一周 最长回文子串
题目1:最长回文子串 题目原文:http://hihocoder.com/contest/hiho1/problem/1 [题目解读] 题目与 POJ 3974 palindrome 基本同样.求解最 ...
- Vue实现组件props双向绑定解决方案
注意: 子组件不能直接修改prop过来的数据,会报错 方案一: 用data对象中创建一个props属性的副本 watch props属性 赋予data副本 来同步组件外对props的修改 watch ...