`

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中的日期对象。 ##### 1. 正则表达式基础 - **语法结构**:正则表达式是由一系列字符和特殊符号组成的模式串,用于匹配字符串中的...

    jS 正则表达式实现关键字高亮显示

    在JavaScript(JS)中,正则表达式是一种强大的文本处理工具,可以用于匹配、查找、替换等操作。在本文中,我们将深入探讨如何利用正则表达式实现关键字的高亮显示,尤其适用于文本搜索和代码高亮场景。下面将详细...

    源码(精通正则表达式&实战正则表达式)

    在JavaScript环境中,正则表达式与其他语言有所不同,它既支持字面量表示法(如`/pattern/flags`),也支持构造函数表示法(如`new RegExp('pattern', 'flags')`)。此外,JavaScript提供了`test()`、`match()`、`...

    正则表达式教程合集(各种语言的,超全)

    在JavaScript中,正则表达式广泛应用于字符串操作,如`match()`、`search()`、`replace()`和`split()`方法。JavaScript的正则表达式有两种创建方式:字面量(/pattern/flags)和构造函数(new RegExp('pattern', '...

    JavaScript经典正则表达式实战

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

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

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

    头歌教学实践平台 Web前端开发基础 JavaScript学习手册十:正则表达式

    3. `match()`:返回字符串中所有匹配正则表达式的子串组成的数组。 4. `search()`:返回匹配项的索引,找不到则返回-1。 5. `replace()`:用新字符串替换匹配项。 6. `split()`:根据正则表达式分割字符串。 ...

    JS常用正则表达式及其使用方法

    JavaScript中的正则表达式是进行字符串...通过阅读提供的文档"js valid.doc"、"常用正则表达式.doc"、"js valid.pdf"和"常用正则表达式.pdf",你将能够深入掌握更多关于JavaScript正则表达式的信息,提升你的编程技能。

    正则表达式.txt,正则表达式.txt

    正则表达式(Regular Expression),简称“regex”或“regexp”,是一种在文本中查找字符串的强大工具。它由一系列字符和特殊符号组成,用于匹配一组符合特定规则的字符串。通过正则表达式,用户可以轻松地实现字符...

    精通正则表达式05

    在JavaScript中,正则表达式可以通过两种方式创建:字面量语法(/pattern/flags)和构造函数(new RegExp('pattern', 'flags'))。其中,`flags`是可选的,如`g`全局匹配,`i`忽略大小写,`m`多行模式等。 在“精通...

    正则表达式 JS 身份证验证

    ### 正则表达式 JS 身份证验证详解 身份证号码在中国大陆地区具有唯一性,是个人身份的重要标识。为了确保信息安全和个人隐私保护,在很多应用系统中都需要对身份证号码进行合法性和格式性的验证。本文将详细阐述...

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

    在JavaScript中,正则表达式的功能主要通过`RegExp`类实现。这种工具允许开发者进行复杂的模式匹配操作,比如查找、替换以及验证文本数据。 #### ECMAScript 规范化 ECMAScript版本3对JavaScript的正则表达式进行...

    正则表达式实例_RegExp

    在编程语言中,正则表达式通常通过函数调用,如JavaScript中的`test()`、`match()`、`search()`、`replace()`等,结合提供的模式进行操作。理解并熟练运用正则表达式,能极大地提高处理文本的效率和准确性。在日常...

    JavaScript 常用正则表达式

    - JavaScript中的正则表达式可以通过字面量语法 `/pattern/flags` 或构造函数 `new RegExp(pattern, flags)` 创建。 2. **正则表达式元字符** - `. (点号)`: 匹配除换行符外的任何单个字符。 - `*`: 零个或多个...

    js正则表达式(例子).rar

    在"js正则表达式(例子).htm"中,可能包含了各种JavaScript正则表达式的实例,例如邮箱验证、手机号码格式检查、URL解析等。通过这些实例,你可以学习如何构建复杂的正则表达式来满足不同的需求,并了解它们在实际...

    javascript正则表达式学习笔记

    这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...

    收集的一些js正则表达式

    这篇博客文章 "收集的一些js正则表达式" 提供了一些实用的JavaScript正则表达式示例,这将有助于开发者在实际项目中进行文本匹配、搜索、替换等操作。 首先,了解正则表达式的基础知识至关重要。正则表达式由一系列...

    正则表达式生成和检验工具

    - **库和框架**:如Perl的Regexp::Common库,JavaScript的regexpu转换工具,帮助生成和优化跨引擎兼容的正则表达式。 综上所述,正则表达式生成和检验工具在IT行业中起着关键作用,它可以帮助开发者快速构建和验证...

Global site tag (gtag.js) - Google Analytics