`
flyingis
  • 浏览: 290196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

正则表达式--JavaScript 实现基础

阅读更多
    作者:Flyingis

    正则表达式用来从某一段字符串中匹配所需要的字符,这些字符可以非常简单,也可以非常复杂。JavaScript生来就对正则表达式有着良好的支持,在网络的字符搜索匹配中发挥着重要的作用。

    JavaScript通过RegExp类来支持正则表达式,举一个最简单的例子:
  
var regApple = new RegExp("apple");

    它可以匹配一个字符串中出现的第一个"apple"字符串,并且对大小写敏感。在构造方法中加入第二个参数"g"则代表的搜索出字符串中所有的"apple",这里"g"代表"global"。如果第二个参数为"i",则代表着case-insensitive,匹配过程中将不考虑字母的大小写。将上述两者综合起来,可以搜索出所有"apple"字符串,并且不考虑大小写问题。

var regApple = new RegExp("apple""gi"); 

    正则表达式有着并不唯一的表示方法,使用Perl语言中的语法,可以将上述表达式表示为:

var regApple = /apple/gi;

    创建了一个RegExp对象后,RegExp的方法可以构造出不同的匹配方式,因为正则表达式是对字符串进行的操作,所以String的一些方法在构造正则表达式的过程中也扮演着重要角色。

    RegExp对象的方法 

var sampleString = "Greenapple";
var regApple = /apple/;
alert(regApple.test(sampleString));

    上面代码输出的结果是"true",因为sampleString中包含了需要匹配的字符串"apple",这是最简单的检测方式。有时,我们需要知道匹配的详细结果,例如:

var sampleString = "green apples, red apples";
var regApple = /apple/g;
var arr = regApple.exec(sampleString);

    通过使用exec()方法,返回的arr是关于匹配结果的一个数组,包括每一个匹配的值及其所在的段,例如上例中是"green apples"还是"red apples"。match()方法有着和exec()相同的功能,只是表达方式不同:

var sampleString = "green apples, red apples";
var regApple = /apple/g;
var arr = sampleString.match(regApple);

    search()方法和indexOf()比较类似,返回第一个匹配的字符串所在的位置:

var sampleString = "green apples, red apples";
var regApple = /apple/gi;
alert(sampleString.search(regApple));  
//输出"6"

    String的方法

    String的replace()方法可以将指定的字符串替换为另一个字符串:

var sampleString = "There is a green apple.";
alert(sampleString.replace(
"green""red"));  //输出"There is a red apple."

    将replace()的第一个参数替换为一个正则表达式,可以达到同样的效果:

var sampleString = "There is a green apple.";
var regApple = /green/;
alert(sampleString.replace(regApple, 
"red"));  //输出"There is a red apple."

    replace()的第二个参数可以替换为一个function(),该function()接受一个匹配字符串作为参数,返回一个替换字符串。(存在疑问)

    使用正则表达式可以实现String的split()方法相同的功能。

var fruit = "apple,pear,lemon";
var arr = fruit.split(",");

    使用正则表达式:

var fruit = "apple,pear,lemon";
var reg = /\,/;
var arr = fruit.split(reg);

    以上这些都是JavaScript正则表达式最基本的一些特性,实现了一些最基本的功能,这些都不是正则表达式真正的强大之处,在作者接下来的随笔中会继续介绍。
分享到:
评论

相关推荐

    使用正则表达式的模式匹配

    JavaScript的正则表达式完全以Perl程序设计语言的正则表达式工具为基础。粗略地说,JavaScript 1.2实现了Perl 4的正则表达式,JavaScript 1.5实现了Perl 5的正则表达式的大型子集。 本章定义了正则表达式用来描述...

    JavaScript 实现基础 正则表达式

    正则表达式用来从某一段字符串中匹配所需要的字符,这些字符可以非常简单,也可以非常复杂。JavaScript生来就对正则表达式有着良好的支持,在网络的字符搜索匹配中发挥着重要的作用。

    Java中正则表达式使用方法详解

    许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。那么Java又怎样呢? 本文写作时,一个包含了用正则表达式进行文本...

    Java正则表达式入门学习

    许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。所以JAVA语言也不例外。正则表达式已经超出了某种语言或某个系统的...

    Javascript中正则表达式的使用及基本语法

    javascript中的正则表达式作为相当重要的知识,本文将介绍正则表达式的基础语法 定义  正则表达式(Regular Expression)是一门简单语言的语法规范,是强大、便捷、高效的文本处理工具,它应用在一些方法中,对字符串...

    techcolon-editor:自定义正则表达式基础编辑器,用于编写基本博客标记

    编辑器本身基于正则表达式。计划使它与集成兼容,但这是独立版本。要注意的最重要的事情是用于实现预期标记的符号。 标题 一级标题(H1) 文本将被包裹在~#1周围。一个例子是 ~#1 <Heading> ~#1

    微信小程序 云开发模糊查询实现解析

    从基础库 2.3.2 开始(wx-server-sdk 从 0.0.23 开始),数据库支持正则表达式查询,开发者可以在查询语句中使用 JavaScript 原生正则对象或使用 db.RegExp 方法来构造正则对象然后进行字符串匹配。在查询条件中对...

    familiar-protein

    这种方法将学习正则表达式与其他变量(例如,编程语言中的正则表达式实现)和代码逻辑混合在一起。 诸如coderbyte和Codeacademy之类的资源使用户可以学习编程,而不必担心不必要的复杂性。 该项目旨在使正则表达式...

    JavaScript从入门到精通(第2版)( (美)Steve Suehring)中文pdf

    第二篇为JavaScript对象,主要包括对象、核心对象、数组、正则表达式、对象模型和事件驱动、窗口与框架、文档对象、表单对象等内容;第三篇为高级技术,主要包括BOM中的其他对象、文档对象模型以及Ajax技术等内容。 ...

    javascript基础知识PDF

    4.3 正则表达式的应用例子 . . . . . . . . . . . . . . 30 5 可参考学习的,精美的代码例子. . . . . . . . . . 31 5.1 预载入图片,实现导航按钮的动态效果 . . . . . . . . . 31 5.2 显示对象的提示信息. . . . ....

    masala-parser:Javascript广义解析器组合器

    Masala Parser是Haskell Parsec的Javascript实现。 它是可在浏览器中使用的纯Javascript,经过450多个单元测试的测试,覆盖了100%的代码行。 用例 它可以从头开始创建完整的解析器 它可以从大文本中提取数据并替换...

    JavaScript核心技术 PDF扫描版

    4.4正则表达式与RegExp 4.5有专门用途的对象:Date和Math 4.6JavaScript数组 4.7关联数组:不是数组的数组 4.8习题 第5章函数 5.1定义函数:细数所有方式 5.2回调函数 5.3函数和递归 5.4嵌套函数、函数闭包和内存...

    JavaScript版 数据结构与算法

    原理讲解 4-4 正则表达式匹配-代码演示 第5章 基础算法之“排序类”排序是学生时代标志性的回忆,然而如何魔改“冒泡排序”、“选择排序”让很多看似与排序无关的题目迎刃而解是不是闻所未闻,还等什么呢?...

    SecretsOfJavaScriptNinja

    Javascript忍者秘术精要翻译自Secrets of Javascript Ninja,摘要其中最精妙的部分进行翻译Part 23 Functions are fundamental (函数是基础)4 Wielding functions (挥舞函数)6 Object-orientation with prototypes ...

    使用jquery获取url以及jquery获取url参数的实现方法

    2、jquery获取url参数比较复杂,要用到正则表达式,所以学好javascript正则式多么重要的事情 首先看看单纯的通过javascript是如何来获取url中的某个参数 function getUrlParam(name) { var reg = new RegExp("(^|&...

    JavaScript权威指南(第6版)

    《JavaScript权威指南(第6版)》主要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScript API。本书第6版涵盖了HTML5和ECMAScript 5,很多章节完全重写,增加了当今Web开发的最佳实践的内容,新增...

    正则中的回溯定义与用法分析【JS与java实现】

    本文实例分析了正则中的回溯定义与用法。分享给大家供大家参考,具体如下: 关于“回溯”我也是第一次接触,对它也不算很了解。下面就把我所了解的做为一个心...我们目前在JavaScript中所使用的正则表达式为“表达式主

    JavaScript权威指南(第6版)(中文版)

    《JavaScript权威指南(第6版)》主要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScript API。本书第6版涵盖了HTML5和ECMAScript 5,很多章节完全重写,增加了当今Web开发的最佳实践的内容,新增...

    JavaScript权威指南(第六版) 清晰-完整

    第10章 正则表达式的模式匹配 10.1 正则表达式的定义 10.2 用于模式匹配的String方法 10.3 RegExp对象 第11章 JavaScript的子集和扩展 11.1 JavaScript的子集 11.2 常量和局部变量 11.3 解构赋值 11.4 迭代 11.5 ...

Global site tag (gtag.js) - Google Analytics