zoukankan      html  css  js  c++  java
  • JavaScript中的match方法和search方法

    search在一个字串对象(string object)中查找关键词字串(规范表达式,regular expression),若匹配(即在目标字串中成功找到关键词)则返回关键词在目标字串中第一次出现的位置序列,反之,如果不匹配,就返回-1。以下示例在目标字串“乐猪网是一个编程入门网站,一个学习编程的乐园!”中查找字母“编程”,返回值为6,因为字母“编程”第一次出现时其常规序列排在第七位,而JS从0开始起算,字母“乐”序列为0,字母“猪”为1,字母“编程”当然就是6了:

    1.  
      function KeySearch(Re, Str) {
    2.  
      var Result = (Str.search(Re) != -1 ? Str : "找不到匹配!");
    3.  
      return Result;
    4.  
      }
    5.  
       
    6.  
      window.onload = function() {
    7.  
      var MyStr = "乐猪网是一个编程入门网站,一个学习编程的乐园!";
    8.  
      var Re = "编程";
    9.  
      var ShowStr = MyStr.search(Re);
    10.  
      alert(ShowStr);
    11.  
      alert(KeySearch("我是一个小小的程序员!", "编程"));
    12.  
      }


    我们看得出来,search方法只关心有无匹配,一旦找到匹配,就提供返回值,并且立刻中断查找的执行。上例中的目标字串(MyStr)有两个“编程”,后两个search并不关心,因为条件已经满足,它退出了自身的匹配查找工作。据此原理,当我们只需要验证有无匹配的操作时,用search既简单又高效。


    match也是在目标字串对象中寻找与关键词匹配与否的一个方法,它的强大功能在于通过关键词的规则创建可以实现复杂搜寻功能,非常灵活。

    不建立规则前提下,match可当作search来使用,语法也一样,不同的是,它返回的是关键词自身(若匹配)和null(若不匹配)——这没有关系,如果只是为了检测匹配。显然地,这不是它存在于javascript世界中的理由,它定有不同于search的特色,即通过规则创建完成实现通盘匹配。看下面例子:

    1.  
      var Str = "请问编程入门网是一个编程技能学习的网站吗?";
    2.  
      var ShowStr = Str.match(/编程/gi);
    3.  
      var Result = ShowStr + " 关键词在原句中出现了 " + ShowStr.length + " 次";
    4.  
      alert(Result);


    上例中,第二行为创建规则表达式“/编程/gi”,双反斜杠内的“编程”为搜寻关键词,其后的参数“gi”表示全部匹配(同等于“g”,若只用“i”,只匹配一次)。这样的规则用于match方法,将返回有规则的数组,其形式为“编程,编程”,还可用length方法得到数组的长度(例中结果为2)。

  • 相关阅读:
    Spring AOP概念及作用
    Spring IOC 概念及作用
    Spring基本介绍
    Mybatis注解开发
    Mybatis缓存及延迟加载策略
    认识各种内存地址
    认识/proc/[pid]/
    进程查看命令ps和top
    认识进程
    认识多处理器架构
  • 原文地址:https://www.cnblogs.com/mz-2015/p/9562482.html
Copyright © 2011-2022 走看看