Js 模式匹配
模式匹配:
什么是模式匹配:可以设置查找或替换的规则!
何时使用模式匹配:要查找的关键字可能发生有规律的变化。
如何使用模式匹配:
1.先定义模式:/关键字/模式
比如:var reg=/no/i;
no 是要查找关键字原文,不加“” 引号
i 表示忽略大小写!
String类型中,提供了专门支持模式匹配的API。
按模式替换关键字:str = str.replace(reg,"新值");
默认replace仅替换第一个关键字!
要想全局替换,要在模式中定义“g”;
实例如下:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var str="No zuo no die";
var regular = /no/ig ; //定义一个规则 i 不区分大小写
//i忽略大小写, g全局查找/替换
str=str.replace(regular,"***");
console.log(str); // 如果是/no/ 小写no替换 /no/i No替换成*** g全局替换 No no全部替换
</script>
</body>
</html>
获得****所有*关键字的**内容**:var kwords = str.match(reg);
只能取得关键字的内容,无法确定每个关键字的位置!
kwords.length:返回找到的关键字个数。
**如果为找到,返回null**
只要有可能返回null!都要先判断 !=null ,再处理~
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var str="No zuo no die";
var regular = /龙虾/ig ; //定义一个规则 i 不区分大小写
var kwords = str.match(regular); //显示被替换的内容
//kwords = null
str=str.replace(regular,"***");
document.write(kwords+"<br/>");
document.write(str+"<br/>");
if(kwords!=null){ // 如果是/no/ 小写no替换 /no/i No替换成*** g全局替换 No no全部替换
document.write("共替换了"+kwords.length+"处");
//null.length
}else{
document.write("未找到");
}
</script>
</body>
</html>
var index = str.search(reg); 和indexOf完全相同~! 了解就好
indexOf 不支持模式查找! search其实是indexOf的模式查找版。
Js 模式匹配的更多相关文章
- 快速记忆JavaScript中exec和match的使用
JS模式匹配中exec,match用得非常多,所以掌握其用法对我们进行字符串的处理帮助非常大 1.exec的定义其用法 exec与match主要的不同是,exec是正则表达式里面的方法. ...
- [JS高程] 字符串模式匹配方法
目录 1. RegExp 对象 2. 字符串模式匹配方法 2.1 match() , search() 2.2 replace() 2.2.1 第二个参数为字符串的应用情况 2.2.2 第二个参数为函 ...
- js中正则表达式的模式匹配
参考Javascript权威指南(第6版)第10章 1.正则表达式的定义 正则表达式有两种定义方法,通常使用直接量方式. (1)直接量 var pattern = /\d$/; var pattern ...
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- JS正则表达式(JavaScript regular expression)
RegExp直接量和对象的创建 就像字符串和数字一样,程序中每个取值相同的原始类型直接量均表示相同的值,这是显而易见的.程序运行时每次遇到对象直接量(初始化表达式)诸如{}和[]的时候都会创建新对象. ...
- 实战JS正则表达式
-正则表达式是一种文本模式的匹配工具. -文章导读: --1.正则对象的属性和方法 --2.字符串对象的方法 --3.使用正则表达式: ---3.1 给字符串加上千分符 ---3.2 字符串中出现次数 ...
- [JS]笔记11之正则表达式
-->什么是正则表达式-->定义正则-->正则的索引-->元字符-->方括号.量词.其他符号-->RegExp 对象的方法-->String 对象方法 1.定 ...
- JS复习--更新结束
js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...
- js入门篇之正则表达式基础
定义:正则用于规定在文本中检索的内容,它是对字符串执行模式匹配的强大工具 RegExp(正则表达式) 对象的语法: new RegExp(pattern, attributes); pattern为一 ...
随机推荐
- commons-logging 与log4j的关系
参考:http://zachary-guo.iteye.com/blog/361177
- DBProxy 读写分离使用说明
美团点评DBProxy读写分离使用说明 目的 因为业务架构上需要实现读写分离,刚好前段时间美团点评开源了在360Atlas基础上开发的读写分离中间件DBProxy,关于其介绍在官方文档已经有很详细 ...
- 在docker hub,用github的dockerfile自动生成docker镜像
简介: 我已经深深的爱上了docker技术. 在日常使用中,经常看到docker hub 中有很多autobuild的镜像.基本使用是在github中上传dockerfile,过一会儿,docker ...
- 首次编译Java小程序
public class helloworld { public static void main(string[] args) { system.out.println("hello wo ...
- C++基础知识:操作符重载
1.C++标准库: C++标准库并不是C++语言的一部分C++标准库是由C++语言编写而成的类库和函数的集合C++标准库中定义的类和对象都位于std命名空间中C++标准库的头文件都不带.h后缀C++标 ...
- Linux关闭防火墙步骤
1 先查询防火墙状态 [root@old-09 ~]# /etc/init.d/iptables status Table: filter Chain INPUT (policy ACCEPT) ...
- Android 删除图片等资源文件 通知系统更新,重新扫描
public void delPic(String path){ File delFile = new File(path); if (delFile.exists()) { delFile.dele ...
- Bootstrap中模态框多层嵌套时滚动条问题
在使用Bootstrap中模态框过程中,如果出现多层嵌套的时候,如打开模态框A,然后在A中打开模态框B,在关闭B之后,如果A的内容比较多,滚动条会消失,而变为Body的滚动条,这是由于模态框自带的遮罩 ...
- UVALive - 6434 (贪心)
题目链接:https://vjudge.net/problem/UVALive-6434 题意:给你n个数字,要你把这n个数字分成m组,每一组的消耗值定义为改组最大值和最小值之差,要求这m组的消耗值总 ...
- codeforces546D(从一个数中拆分素数)
D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megabytes input s ...