`

javascript 正则表达式探索

 
阅读更多

以下部分内容来自http://www.w3school.com.cn/js/js_obj_regexp.asp

什么是 RegExp?

RegExp 是正则表达式的缩写。

当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。

简单的模式可以是一个单独的字符。

更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。

您可以规定字符串中的检索位置,以及要检索的字符类型,等等。

 

定义 RegExp

RegExp 对象用于存储检索模式。

通过 new 关键词来定义 RegExp 对象。以下代码定义了名为 patt1 的 RegExp 对象,其模式是 "e":

var patt1=new RegExp("e");

当您使用该 RegExp 对象在一个字符串中检索时,将寻找的是字符 "e"。

 

 

RegExp 对象的方法

RegExp 对象有 3 个方法:test()、exec() 以及 compile()。

test()

test() 方法检索字符串中的指定值。返回值是 true 或 false。

例子:

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free")); 

由于该字符串中存在字母 "e",以上代码的输出将是:

true

exec()

exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

例子 1:

var patt1=new RegExp("e");

document.write(patt1.exec("The best things in life are free")); 

由于该字符串中存在字母 "e",以上代码的输出将是:

e

例子 2:

您可以向 RegExp 对象添加第二个参数,以设定检索。例如,如果需要找到所有某个字符的所有存在,则可以使用 "g" 参数 ("global")。

如需关于如何修改搜索模式的完整信息,请访问 RegExp 对象参考手册

在使用 "g" 参数时,exec() 的工作原理如下:

  • 找到第一个 "e",并存储其位置
  • 如果再次运行 exec(),则从存储的位置开始检索,并找到下一个 "e",并存储其位置
var patt1=new RegExp("e","g");
do
{
result=patt1.exec("The best things in life are free");
document.write(result);
}
while (result!=null) 

由于这个字符串中 6 个 "e" 字母,代码的输出将是:

eeeeeenull

compile()

compile() 方法用于改变 RegExp。

compile() 既可以改变检索模式,也可以添加或删除第二个参数。

例子:

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free"));

patt1.compile("d");

document.write(patt1.test("The best things in life are free"));

由于字符串中存在 "e",而没有 "d",以上代码的输出是:

truefalse

我们最常用到的是test()方法,所以exec(),compile()不多说,因为只要正则的原理掌握了,学习另外两种方法是一样的。

创建正则表达式有两种方式:

1.   var reg = /aaa/; 2. var reg = new RegExp('aaa');

 

RegExp 对象

RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

直接量语法

/pattern/attributes

创建 RegExp 对象的语法:

new RegExp(pattern, attributes);

参数

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

返回值

一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。

如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。

抛出

SyntaxError - 如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。

TypeError - 如果 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该异常。

修饰符

修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。

 

修饰符i例子:

var reg=new RegExp("HelloWorld","i");

var reg1=/regexp/i;//第二种写法。

alert(reg.test("helloworld"));//结果为true,说明现在不区分大小写,如果把,"i"去掉,结果就为false,区分大小写。

修饰符g例子:

 

var reg=new RegExp("is","g");

var reg2=/is/g;//第二种定义方法;

var str="Is this an egg,Yes,it is.";

alert(reg.test(str));

document.write(str.match(reg));

//修饰符可以一起用,比如 new RegExp("is","gi");  var reg2=/is/gi;

修饰符m的例子:

行首行尾,修饰符m

形式:/pattern/m

m修饰符的作用是修改^和$在正则表达式中的作用,让它们分别表示行首和行尾。例如:

 

var reg = /^b/;
var str = 'test\nbbs';
execReg(reg,str);

匹配失败,因为字符串的开头没有b字符。但是加上m修饰符之后:

var reg = /^b/m;
var str = 'test\nbbs';
execReg(reg,str);

匹配到b,因为加了m修饰符之后,^已经表示行首,由于bbs在字符串第二行的行首,所以可以成功地匹配。

 

 

 

0
0
分享到:
评论

相关推荐

    javascript 30分钟学会正则表达式

    在JavaScript的世界里,正则表达式(Regular Expression)是一种强大的文本处理工具,它能用于搜索、替换、验证字符串等操作。对于任何JavaScript开发者来说,掌握正则表达式都是至关重要的,因为它们在处理数据格式...

    Javascript正则表达式校验共7页.pdf.zip

    JavaScript正则表达式是编程语言JavaScript中的一个强大工具,用于处理文本字符串,执行模式匹配和数据验证。在JavaScript中,正则表达式是通过构造函数`RegExp`或使用特殊的正则字面量语法(用斜杠`/`包围)创建的...

    正则表达式.rar || 正则表达式.rar

    2. JavaScript:JavaScript的全局对象`RegExp`提供了正则表达式功能,`test()`、`exec()`、`match()`、`replace()`等方法广泛应用于前端开发。 3. Java:Java中的`java.util.regex`包提供正则表达式支持,`Pattern`...

    javaScript正则表达式帮助文档

    JavaScript正则表达式是编程语言JavaScript中的一个重要组成部分,它用于处理文本字符串,执行模式匹配和查找、替换等操作。在JavaScript中,正则表达式是一种强大的工具,可以帮助开发者进行复杂的数据验证、文本...

    正则表达式(里面包含大量的正则表达式)

    - 在JavaScript中,通过 `new RegExp()` 构造函数或直接在字符串前加 `//` 创建正则表达式。 - Python中的 `re` 模块提供了丰富的正则表达式操作函数,如 `re.search()`,`re.findall()` 等。 - Java中的 `...

    正则表达式测试工具RegexTester 中文版

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和...只需运行压缩包内的"RegexTester.exe"文件,即可启动这款强大的工具,开始你的正则表达式探索之旅。

    regexp正则表达式正则表达式正则表达式

    - **JavaScript**:JavaScript 也内置了正则表达式的支持。 - **grep/egrep**:Unix/Linux 下的命令行工具,用于在文件中搜索匹配正则表达式的行。 #### 五、正则表达式的高级主题 对于更深入的学习者来说,还可以...

    正则表达式 电子书 教程 chm

    正则表达式是一种强大的文本处理工具,用于在字符串中匹配、查找、替换或提取特定模式。它是编程语言中不可或缺的一...所以,不妨现在就开始,打开那本名为"正则表达式"的CHM电子书,踏上探索正则表达式世界的旅程吧。

    正则表达式30 分钟入门教程

    正则表达式在各种编程语言中都有支持,如Python、JavaScript、Java等,都提供了正则表达式的API接口,允许开发者构建复杂的文本匹配逻辑。 对于初学者来说,通过实际的例子来学习正则表达式是一种很好的方法。开始...

    正则表达式编辑器

    5. **代码生成**:支持将构建好的正则表达式导出为多种编程语言的代码片段,如Python、Java、JavaScript等,方便集成到实际项目中。 6. **搜索与替换**:在大量文本中查找匹配的模式,并可进行批量替换操作,大大...

    正则表达式的应用全集

    10. **JavaScript中的正则**:在《JS正则表达式 .txt》中,讲解了JavaScript语言中如何使用正则表达式,包括`test()`、`match()`、`replace()`等方法。 11. **深入理解正则表达式**:《深入浅出之正则表达式.txt》...

    正则表达式实用手册

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。在这个“正则表达式实用...这份“正则表达式实用手册”将是你探索这一领域的宝贵资源。

    正则表达式入门经典

    总之,"正则表达式入门经典"是初学者入门正则表达式的好教材,它将引导你探索这个强大工具的世界,为你的编程生涯添加一项不可或缺的技能。通过深入学习并实践书中的内容,你将在处理文本数据时变得更加高效和精准。

    (html+css+javascript+正则表达式)中文帮助(CHM)

    "正则表达式.chm"可能详细讲解了正则表达式的语法、特殊字符、元字符、量词、分组、零宽断言等核心概念,以及如何在JavaScript中使用正则表达式进行匹配和替换操作。 这些CHM文件是学习Web开发的宝贵资源,通过它们...

    正则表达式系统教程非常好的学习资料

    - 不同编程语言可能使用不同的正则表达式引擎,如Perl兼容(PCRE)和JavaScript的引擎有差异。 8. **实际应用** - 在编程中,正则表达式常用于数据验证,如邮箱、电话号码格式检查。 - 在文本编辑器中,使用正则...

    正则表达式(含RegEx Tool正则表达式测试工具)

    正则表达式(Regular Expression,简称RegEx)是编程领域中一种强大的文本处理工具,用于匹配、查找、替换和提取字符串中的模式。...无论是新手还是经验丰富的开发者,都应该不断探索和完善自己的正则表达式技能。

    正则表达式 个人感觉非常使用的版本

    正则表达式的应用非常广泛,例如在JavaScript、Python、Java等编程语言中,它们被用来进行输入验证(如邮箱格式检查)、数据提取(如从HTML中抓取信息)以及文本替换(如批量修改文件内容)。熟练掌握正则表达式能够...

    正则表达式测试工具

    在编程语言中,正则表达式通常通过内建函数或第三方库来支持,如Python的`re`模块或JavaScript的`match()`、`test()`等方法。 在描述中提到的`easy_validate`是一个兼容性良好的表单验证库,它允许开发者使用正则...

    正则表达式入门正则表达式 学习参考 推荐

    ### 正则表达式入门与基础详解 #### 一、正则表达式的概念与作用 正则表达式(Regular ...通过以上基础知识的学习,读者可以逐渐掌握正则表达式的使用方法,进一步深入探索更复杂的正则表达式功能和应用场景。

Global site tag (gtag.js) - Google Analytics