`

js中的正则表达式(match,RegExp)

阅读更多
[size=x-small]JS中正则表达式[/size]

一:正则表达式的创建方式
1.文字格式,使用方法如下:
/pattern/flags(即:/模式/标记)
2.RegExp构造函数,使用方法如下:
new RegExp("pattern"[,"flags"])(即:new RegExp("模式"[,"标记"]))

参数:
pattern(模式):表示正则表达式的文本
flags(标记):如果指定此项,flags可以是下面之一:

g:global match(全定匹配)
i:ignore case(忽略大小写)
gi:both global match and ignore case(匹配所有可能的值,也忽略大小写)
注意:文字格式中的参数不要使用引号标记,二够造器函数的参数则要使用引号标记。所以下面的表达式
是等价的:
/ab+c/i     ====================  new RegExp("ab+c","i")

描述:
当使用构造器函数创建正则表达式的时候,必须使用正常的字符串避开规则(在字符串中加入前导字符\)是必须的。
例如,下面的两条语句是等价的:
re=new RegExp("\\w+");
re=/\w+/



注意:RegExp预置了$属性
$1, ..., $9属性
用圆括号括着的匹配子串,如果有的话。
是RegExp的属性
静态,只读
在JavaScript 1.2, NES 3.0以上版本提供
描述:因为input是静态属性,不是个别正则表达式对象的属性。你可以使用RegExp.input 访问该
属性。
能加上圆括号的子串的数量不受限制,但正则表达式对象只能保留最后9 条。如果你要访问所有的
圆括号内的匹配字串,你可以使用返回的数组。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <SCRIPT LANGUAGE="JavaScript1.2">
  var regexp = new RegExp("(\\w+)\\s(\\w+)");
str = "John Smith";
newstr=str.replace(regexp,"$2");
newstr2=str.replace(regexp,"$1");
document.write("原字符串:"+str+"<br/>");
document.write(newstr+"<br/>");
document.write(newstr2+"<br/>");
document.write('$1='+RegExp.$1+"	$2="+RegExp.$2);
</SCRIPT>
 </HEAD>
 <BODY>
 </BODY>
</HTML>


二:
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。它返回指定的值,而不是字符串的位置。

语法
stringObject.match(searchvalue)
stringObject.match(regexp)参数 描述
searchvalue 必需。规定要检索的字符串值。
regexp 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。
返回值
存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。
说明
match() 方法将检索字符串 stringObject,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。

如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。

match使用实例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <SCRIPT LANGUAGE="JavaScript1.2">
var str="1 plus 2 equal 3";
var str2="11/23/55";
var results=str.match(new RegExp("\\d+","gi"));
for(var i=0;i<results.length;i++){
	document.write(results[i]+"<br/>");
}
var res=str2.match(new RegExp("(\\d\\d?)/(\\d\\d?)/(\\d\\d)"));
if(str2.length == res[0].length){
	document.write(res[1]+"<br/>");
	document.write(res[2]+"<br/>");
	document.write(res[3]+"<br/>");
}
</SCRIPT>
 </HEAD>
 <BODY>
 </BODY>
</HTML>

function dateCheck(value) {
	re = new RegExp("(\\d\\d?)/(\\d\\d?)/(\\d\\d)");
	var result = value.match (re);
	if (result){
		if (result[0].length != value.length){
			alert ("Wrong date format. The correct format should be MM/dd/yy.")
			return false;
		}else{
			var t =  result[3];
			var y = parseInt("20" + t);
			var m = parseInt(result[1], 10) - 1;
			var day = parseInt(result[2], 10);

			var d = new Date(y, m, day);
			if (d.getFullYear() != y || d.getMonth() != m || d.getDate() != day){
				alert ("error date!")
				return false;
			}else{
				var sm = result[1].length == 1?'0' + result[1]:result[1];
				var sday = result[2].length == 1?'0' + result[2]: result[2];
				var sy = result[3];
				else 
					return sm + '/' + sday + '/' + sy;
			}
		}
	}else{
		alert ("Wrong date format. The correct format should be MM/dd/yy.");
		return false;
	}
}
分享到:
评论

相关推荐

    正则表达式

    在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象, 也可以用JavaScript 1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号...

    全面解析JS字符串和正则表达式中的match、replace、exec等函数

    正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 正则表达式由于不经常使用,所以容易经常忘记,...

    浅谈JS正则表达式的RegExp对象和括号的使用

    常规的正则表达式的创建可用直接量,即斜杠 “/” 括起来的字符。但在要求参数变化的环境下,RegExp()构造函数是更好的选择: var reg1 = /’\w+’/g; var reg2 = new RegExp(‘\’\\w+\”,’g’); 对比两种创建方式...

    JavaScript 正则表达式与字符串查找方法

    首先提出一个问题: 如何取得一个给定的字符串substr在另一个字符串str中出现的次数? 字符串匹配,第一想到的就是...语法为str.match(regExp),参数为一个正则表达式,若传的不是正则则会隐式转换,返回值为一个包含匹

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

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

    js正则表达式之exec方法讲解

    功能说明:该函数通过对指定你的字符串进行一次匹配检测,获取字符串中的第一个与正则表达式的内容,并且将匹配的内容和子匹配的结果存放在返回数组中 基本方法:objReg.exec&#40;string&#41; objReg,RegExp对象的...

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

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

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

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

    数字的正则表达式写法参考书

    一个不错的数字的正则表达式验证的电子参考书。内容预览: 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ ...

    正则表达式模式匹配的String方法

    在JavaScript代码中使用正则表达式进行模式匹配经常会用到String对象和RegExp对象的一些方法,例如replace、match、search等方法,以下是对一些方法使用的总结。 String对象中支持正则表达式有4种方法,分别是:...

    issue-regex:正则表达式,用于匹配问题参考

    正则表达式 正则表达式,用于匹配问题参考 安装 $ npm install issue-regex 用法 const issueRegex = require ( 'issue-regex' ) ; 'Fixes #143 and avajs/ava#1023' . match ( issueRegex ( ) ) ; //=&gt; ['#143', ...

    js-sandbox-14:正则表达式-评估函数

    本章介绍JavaScript正则表达式。 exec exec&#40;&#41;方法执行对指定字符串中的匹配项的搜索。 返回结果数组,或者返回null 。 test test()方法执行搜索以查找正则表达式与指定字符串之间的匹配项。 返回true或...

    JavaScript系列文章:详解正则表达式基本知识

    正则表达式是一个精巧的利器,经常用来在字符串中查找和替换,JavaScript语言参照Perl,也提供了正则表达式相关模块,开发当中非常实用,在一些类库或是框架中,比如jQuery,就存在大量的正则表达式,所以说学好正则...

    javascript高级程序设计(第三版)学习笔记(一) 正则表达式整理

    1、创建正则表达式 第一种方式:注意这里的正则表达式不能使用单引号或者双引号,如下 var pattern1 = /[abc]/i; // 匹配第一个”a”或”b”或”c”,不区分大小写 第二种方式:使用RegExp构造函数创建,该构造函数...

    js的正则test,match,exec详细解析

    正则表达式gi我刚开始也看不懂,从网上找到后看到了,现在分享给大家正在表达式的通项: /pattern/flags 即(/模式/标记 )构造器函数方法使用方法如下:new RegExp(“pattern”[, “flags”])即new RegExp(“模式”[,...

    Mootools 1.2教程 正则表达式

    尽管JavaScript本身已经为RegExp对象提供了它自己的test()方法,MooTools的test()方法更好用一些,在JavaScript中使用正则表达式也更轻松一些。 对于初学者,我们先看一下test()方法最简单的用法,在

    js正则表达式

    声明javascript 正则表达式 var reCat = new RegExp("cat"); 你也可以 var reCat = /cat/; //Perl 风格 (推荐) 2 学习最常用的 test exec match search replace split 6个方法 1) test 检查指定的字符串...

    一篇文章搞懂JavaScript正则表达式之方法

    RegExp 是正则表达式的构造函数。 使用构造函数创建正则表达式有多种写法: new RegExp('abc'); // /abc/ new RegExp('abc', 'gi'); // /abc/gi new RegExp(/abc/gi); // /abc/gi new RegExp(/abc/m, 'gi'); // /...

    js正则表达式中test,exec,match方法的区别说明

    js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式。var str = “1a1b1c”;var reg = new RegExp(“1.”, “”);alert&#40;reg.test(str&#41;); // true exec ...

    正则表达式匹配中文与双字节的代码

    匹配中文字符 [\u4e00-\u9fa5] C# ... Match m = regx.Match(s); Console.WriteLine(m.Groups[0].Value); // 中文 Console.ReadKey(); } } 匹配双字节字符(包括汉字) [^\x00-\xff] 您可能感兴趣的文章:PHP 正则表达

Global site tag (gtag.js) - Google Analytics