模式匹配:

什么是模式匹配:可以设置查找或替换的规则!

何时使用模式匹配:要查找的关键字可能发生有规律的变化。

如何使用模式匹配:

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 模式匹配的更多相关文章

  1. 快速记忆JavaScript中exec和match的使用

    JS模式匹配中exec,match用得非常多,所以掌握其用法对我们进行字符串的处理帮助非常大 1.exec的定义其用法        exec与match主要的不同是,exec是正则表达式里面的方法. ...

  2. [JS高程] 字符串模式匹配方法

    目录 1. RegExp 对象 2. 字符串模式匹配方法 2.1 match() , search() 2.2 replace() 2.2.1 第二个参数为字符串的应用情况 2.2.2 第二个参数为函 ...

  3. js中正则表达式的模式匹配

    参考Javascript权威指南(第6版)第10章 1.正则表达式的定义 正则表达式有两种定义方法,通常使用直接量方式. (1)直接量 var pattern = /\d$/; var pattern ...

  4. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  5. JS正则表达式(JavaScript regular expression)

    RegExp直接量和对象的创建 就像字符串和数字一样,程序中每个取值相同的原始类型直接量均表示相同的值,这是显而易见的.程序运行时每次遇到对象直接量(初始化表达式)诸如{}和[]的时候都会创建新对象. ...

  6. 实战JS正则表达式

    -正则表达式是一种文本模式的匹配工具. -文章导读: --1.正则对象的属性和方法 --2.字符串对象的方法 --3.使用正则表达式: ---3.1 给字符串加上千分符 ---3.2 字符串中出现次数 ...

  7. [JS]笔记11之正则表达式

    -->什么是正则表达式-->定义正则-->正则的索引-->元字符-->方括号.量词.其他符号-->RegExp 对象的方法-->String 对象方法 1.定 ...

  8. JS复习--更新结束

    js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...

  9. js入门篇之正则表达式基础

    定义:正则用于规定在文本中检索的内容,它是对字符串执行模式匹配的强大工具 RegExp(正则表达式) 对象的语法: new RegExp(pattern, attributes); pattern为一 ...

随机推荐

  1. commons-logging 与log4j的关系

    参考:http://zachary-guo.iteye.com/blog/361177

  2. DBProxy 读写分离使用说明

    美团点评DBProxy读写分离使用说明   目的 因为业务架构上需要实现读写分离,刚好前段时间美团点评开源了在360Atlas基础上开发的读写分离中间件DBProxy,关于其介绍在官方文档已经有很详细 ...

  3. 在docker hub,用github的dockerfile自动生成docker镜像

    简介: 我已经深深的爱上了docker技术. 在日常使用中,经常看到docker hub 中有很多autobuild的镜像.基本使用是在github中上传dockerfile,过一会儿,docker ...

  4. 首次编译Java小程序

    public class helloworld { public static void main(string[] args) { system.out.println("hello wo ...

  5. C++基础知识:操作符重载

    1.C++标准库: C++标准库并不是C++语言的一部分C++标准库是由C++语言编写而成的类库和函数的集合C++标准库中定义的类和对象都位于std命名空间中C++标准库的头文件都不带.h后缀C++标 ...

  6. Linux关闭防火墙步骤

    1   先查询防火墙状态 [root@old-09 ~]# /etc/init.d/iptables status Table: filter Chain INPUT (policy ACCEPT) ...

  7. Android 删除图片等资源文件 通知系统更新,重新扫描

    public void delPic(String path){ File delFile = new File(path); if (delFile.exists()) { delFile.dele ...

  8. Bootstrap中模态框多层嵌套时滚动条问题

    在使用Bootstrap中模态框过程中,如果出现多层嵌套的时候,如打开模态框A,然后在A中打开模态框B,在关闭B之后,如果A的内容比较多,滚动条会消失,而变为Body的滚动条,这是由于模态框自带的遮罩 ...

  9. UVALive - 6434 (贪心)

    题目链接:https://vjudge.net/problem/UVALive-6434 题意:给你n个数字,要你把这n个数字分成m组,每一组的消耗值定义为改组最大值和最小值之差,要求这m组的消耗值总 ...

  10. codeforces546D(从一个数中拆分素数)

    D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megabytes input s ...