上次面试的时候,人家问起Javascript,随便聊了聊,Javascript里的东西到是没有难到我。但是问起正则表达式的时候,到是彻底的难倒我了。倒不是没有看过,学Java的时候,确实看过。但当时是学Java,谁会有心情仔细看什么正则表达式呢?而且Java书上也就那么几页,肯定不够干什么的。正好现在有闲暇时间,拿出来学习一下,这么重要的东西可不能不会。 好现在开始:
首先是正则表达式的英文名称:Regular Expression
之后是创建第一个RegExp变量。创建RegExp变量有两种方法,一种是像创建String时一样,直接使用字符串定义。另一种是使用ReqExp构造函数创建。
第一种方法是:
var pattern = /sS/;
第二种方法是:
var pattern = new RegExp("sS");
var zipcode=new ReqExp("\\d{5}","g"); //第一个变量是正则表达式(/ / 里的),第二个是用来加i或g的。
创建完对象,我们写几个例子来说明如何在Javascript中,使用正则表达式。
首先使用正则表达式对String对象解析,这也是我们最经常使用的。String对像包含四个有用的方法,第一个是search方法。
“JavaScript”.search(/script/i/);
//这个方法返回值是4,也就是javascript第五个字母。开始值是0,所以是4。
第二个方法是replace(var,var); 使用方法,用需要替换的字符串调用,第一个参数填 正则表达式,第二个参数添加需要替换的 字符串。
var text="Java is my love, my best lover is Java.";
var result=text.replace(/java/gi,"Bava"); // i用来忽略大小写,g用来搜索整个字符串。
《JavaScript权威指南》上一个很漂亮的使用例子。
var text="Java is my love, my best lover is Java.";
var quote=/"([^"]*)"/g;
var result=text.replace(quote,"''\$1''");
//可以将 "Java..." 周围的“,替换成''
第三个方法是match,它会返回一个数组,即与正则表达式相匹配的数组。
text2="1 plus 2 equals 3";
var result2 =text2.match(/\d+/g);
alert(result2[0]);
//输出1,result2的数组里是 1,2,3,
注:即使text2执行的不是全局收索(不加g),也会返回数组,这时的是第一个全比配值,之后是部分匹配。
最后一个是也是一个很有用的方法。split()它可以将像,123,456,789,0这样的字符串分解成一个数组。
text3="123,456,789,0";
result3=text3.split(",");
alert(result3[1]);
//返回456,当然这个例子没用正则表达式。
《JavaScript权威指南》上还有一个很漂亮的使用例子。
text3="123, 456, 789,0";
result3=text3.split(/\s*,\s*/);
alert(result3[1]);
//这个例子展示的是即使在‘,’前后有空格,一样可以把字符串分开。
最后简单写一下RegExp对象的方法。一共有两个两个,一个是exec(),这个方法与String对象的match相似。只是对象和参数换一下位。第二个是test()组要是测试看是否有符合的,有就返回true。
var pattern=/java/g;
var text="Javascript is more fun than Java!";
var result;
while((result=pattern.exec(text))!=null){
alert("Matched'"+result[0]+"'"+" at position "+result.index+"; next search begins at
"+pattern.lastIndex);
}
var pattern=/java/i;
pattern.test("JavaScript"); //true
分享到:
相关推荐
在 JavaScript 中,正则表达式可以被定义为一个 RegExp 对象。每次估值时,RegExp 对象都会返回一个新对象,这意味着RegExp 是可变对象。 直接量字符模式 在正则表达式中,直接量字符模式是指任意字符,除了 ^ $ ....
1. JavaScript正则表达式在线测试工具:http://tools.jb51.net/regex/javascript 2. 正则表达式在线生成工具:http://tools.jb51.net/regex/create_reg 这些工具可以帮助开发者快速测试和生成正则表达式,从而提高...
下面是一个简单的JavaScript示例代码,展示如何使用正则表达式匹配`<div>`和`<style>`标签: ```javascript // 示例字符串,包含div和style标签 var htmlString = '这是一个div标签的内容。这是style标签中的样式。...
以下是一些常见的JavaScript正则表达式及其应用: 1. **匹配中文字符**:`[\u4e00-\u9fa5]` 这个正则表达式用于匹配Unicode范围内的中文字符,包括所有汉字。例如,如果你想在一个字符串中查找所有中文字符,可以...
根据提供的文件信息,我们可以整理出一系列与正则表达式相关的知识点。这些知识点涵盖了从基本的数字验证到复杂的字符串匹配等多个方面。下面是详细的知识点总结: ### 基本概念 正则表达式是一种用于文本模式匹配...
正则表达式是一种强大的文本处理工具,用于在Java和JavaScript中进行字符串匹配、搜索、替换等操作。在编程中,正则表达式是处理文本数据不可或缺的一部分,它们使用特殊的字符序列来定义一个模式,该模式可以用来...
JavaScript正则表达式工具是一种基于JavaScript开发的应用程序,旨在帮助开发者和编程爱好者更方便地理解和使用正则表达式。在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于字符...
在编程世界中,三目运算符和正则表达式是两个非常重要的概念,它们各自扮演着独特的角色,同时也常被结合起来使用,以提高代码的简洁性和效率。让我们深入探讨这两个主题。 首先,三目运算符,也称为条件运算符,是...
在编程领域,正则表达式是一种强大的文本处理工具,它能帮助我们进行复杂的字符串匹配、查找、替换和解析。在本话题中,我们将探讨如何利用C#中的正则表达式来巧妙地解析度分秒格式的字符串,将其转换为统一的度数...
在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换、分割等操作。在本教程中,我们将深入探讨如何使用正则表达式来拆分字符串,这对于数据处理和文本分析尤其有用。下面...
正则表达式可以与`String`对象的方法结合使用,如`match()`、`search()`、`replace()`和`split()`,以执行匹配、查找、替换和拆分操作。 总的来说,JavaScript中的正则表达式提供了一个强大而灵活的工具箱,用于...
2. **创建Pattern对象**:使用Pattern类来编译正则表达式。 3. **执行匹配**:使用Matcher类来进行实际的匹配操作。 例如,要验证一个字符串是否符合美国社会安全号码的格式,可以编写如下代码: ```java import ...
在编程语言中,几乎所有现代语言都支持正则表达式的使用,例如 Java、Python、JavaScript 等。此外,在日常工作中使用的工具如 grep、sed 和 awk 等也支持正则表达式的操作。 #### 三、基本概念介绍 1. **元字符**...
7. 替换:`String.prototype.replace()`方法,可以使用正则表达式进行替换。 8. 全局搜索:使用`g`标志可以进行全局匹配,`i`标志忽略大小写,`m`标志使`^`和`$`匹配多行。 四、JavaScript手册 一份详尽的...
ECMAScript版本3对JavaScript的正则表达式进行了标准化。具体来说: - **JavaScript 1.2** 实现了ECMAScript v3标准的一个子集。 - **JavaScript 1.5** 实现了完整的ECMAScript v3标准,提供了更全面的支持。 值得...
正则表达式(Regular Expression)是一种模式匹配工具,在文本处理领域有着广泛的应用,尤其是在JavaScript等编程语言中,用于字符串搜索、替换以及提取等功能。本文将详细介绍一系列常用的正则表达式及其应用场景,...
以上示例代码均演示了如何使用正则表达式检查一个字符串是否仅包含中文、数字、字母和下划线。 #### 五、总结 通过本文的介绍,我们可以了解到正则表达式是处理文本的强大工具之一。对于特定的需求,比如本例中的...
1. 编译正则表达式:使用re模块的compile函数将正则表达式编译成一个模式对象。 2. 匹配字符串:使用模式对象的match或search函数将正则表达式应用于字符串。 3. 提取匹配结果:使用group函数或groups函数提取匹配...
通过使用圆括号 `()` 对正则表达式的一部分进行分组,可以创建捕获组。捕获组允许用户提取匹配的部分,这对于从复杂文本中抽取有用信息非常有用。例如,在匹配电子邮件地址时,可以通过分组来分别获取用户名和域名...