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

学习 Javascript 正则表达式(一)————使用正则表达式对String对象解析

    博客分类:
  • Html
阅读更多
上次面试的时候,人家问起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










分享到:
评论

相关推荐

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

    ECMAScript v3对JavaScript正则表达式进行了标准化。JavaScript 1.2实现了ECMAScript v3要求的正则表达式特性的子集,JavaScript 1.5实现了完整的标准。JavaScript的正则表达式完全以Perl程序设计语言的正则表达式...

    经典Javascript正则表达式

    经典Javascript正则表达式 正则表达式用于字符串处理,表单验证等场合,实用高效,但用到时总是不太把握,以致往往要上网查一番。我将一些常用的表达式收藏在这里,作备忘之用。  匹配中文字符的正则表达式:  [\...

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    RegexApplication/Default.aspx 正则表达式类的应用 RegexApplication/GetPageHtmlData.aspx 获取网页的内容 第10章(/10/) ASPNETValidator/Compare.aspx 比较验证 ASPNETValidator/...

    javascript 正则表达式.doc

    JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...

    JavaScript正则表达式

    JavaScript正则表达式 一、认识正则表达式 1、正则表达式是描述字符模式的对象,正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。 2、String和RegExp都定义了使用正则表达式进行强大...

    javascript正则表达式和字符串RegExp and String(一).docx

    javascript正则表达式和字符串RegExp and String(一).docx

    javascript正则表达式和字符串RegExp and String(二).docx

    javascript正则表达式和字符串RegExp and String(二).docx

    C# 最全的日期正则表达式,没有之一

    考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。 ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2...

    正则表达式

    JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...

    JavaScript--正则表达式

    JavaScript--正则表达式 正则表达式(regular expression)对象包含一个正则表达式模式(pattern)。 它具有用正则表达式模式去匹配或代替一个串(string)中特定字符(或字符集合) 的属性(properties)和方法(methods)。

    String字符串匹配javascript 正则表达式

    在JavaScript代码中使用正则表达式进行模式匹配经常会用到String对象和RegExp对象的一些方法,例如replace、match、search等方法,下面所述是对相关方法使用的总结,需要的朋友参考下。 String对象中支持正则表达式...

    javascript 正则表达式

    正则表达式是一个描述字符模式的对象。 JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法

    js中string之正则表达式replace方法详解

    replace方法是javascript涉及到正则表达式中较为复杂的一个方法,严格上说应该是string对象的方法。只不过牵扯到正则的时候比较多一些。需要我们灵活的使用。 语法: stringObj.replace(regexp/substr,replacement)...

    Java正则表达式规则(技术文档)

    java正则表达式规则,包含java正则表达式基本知识、JavaScript RegExp对象参考手册、支持正则表达式的 String 对象的方法、定义正则表达式等内容。文档中有表达式的学习视频下载,配合文档会有不错的效果!

    JavaScript 正则表达式解析

    JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...

    Javascript正则表达式验证账号、手机号、电话和邮箱的合法性

    本章介绍 JavaScript正则表达式。 1、验证帐号是否合法 验证规则:字母、数字、下划线组成,字母开头,4-16位。 function checkUser(str){ var re = /^[a-zA-z]\w{3,15}$/; if(re.test(str)){ alert(正确&#...

    经典Javascript正则表达式[优质排版]

    匹配中文字符的正则表达式: 代码如下:[\u4e00-\u9fa5]匹配双字节字符(包括汉字在内): 代码如下:[^\x00-\xff]应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 代码如下:String.prototype.len=...

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

    • Javascript正则表达式在线测试工具 如果你不觉得正则表达式很难读写的话,要么你是一个天才,要么,你不是地球人。正则表达式的语法很令人头疼,即使对经常使用它的人来说也是如此。由于难于读写,容易出错,...

Global site tag (gtag.js) - Google Analytics