`
gogole_09
  • 浏览: 206034 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JavaScript正则表达式

阅读更多

Javascript中,使用RegExp类表示正则表达式
正则表达式也可以是直接包含在一对/之间的字符
如:
$:结尾

var pattern /s$/; 

 其等价于:

var pattern=new RegExp(s$); 

 

JavaScript中采用的是perl语言使用正则的语法来匹配字符

常用的直接量字符:

\o NUL字符
\t 制表符
\n 换行符
\v 垂直制表符
\f 换页符
\r 回车



字符类:

\s 空格符 
\S 非Unicode空白符 
[...] 位于括号内的任何字符 
[^...]不在括号内的任何字符 
.  任意字符,除换行 
\w 任何单字字符 相当于[a-zA-Z0-9_] 
\W 任何非单字字符,相当于[^a-zA-Z0-9_] 
\d 任何数字 相当于[0-9] 
\D 任何非数字 相当于[^0-9] 
[\b] 退格 

 

重复字符:

{n,m} 最少n次,最多m次 
{n,}  最少n次,或更多次 
{n}   正好n次 
?     0或者1次 {0,1} 
+     最少1次,或者更多{1,} 
*     0次或多次 等价于{0,} 

 

选择、分组和引用

"|"    来分隔供选择的字符。 
例如:/ab|cd|ef/ 可以匹配ab,或者cd或者ef 
      /\d{3}|[a-z]{4}/ 匹配3个数字和4个字母 
"()"   来组合子表达式 
例如:/java(script)?/ 可以匹配java但是后面也可以跟script 

       可以用来在表达式后部分引用前面的子表达式。 
例如:/([Jj]ava([Ss]cript)?)\sis\S(fun\w*)/ 
其中[Ss]cript 被指定为/2 (以左边括号为准) 
        例如: 
要求开始和结束的引号想匹配 
/['"][^'"]*['"]/ 可以写成 
/(['"])[^'"]*\1/   /1匹配的是第一个带括号的子表达式 

 

分组,引用字符

|  选择,匹配该符号左边的子表达式或者右边子表达式 
(...) 组合,将几个项目组成一个单元,单元可以由*,+,?和|等符号使用 
(?:...) 只组合.把项目组合到一个单元,但是不记忆与该组匹配的字符 
\n      和第n个分组第一次匹配的字符相匹配。组是括号中表达式 
组号是从左到右计数的左括号数。以(?:分组的不编码,无法访问 

 
锚字符:

^ 字符串开头,多行检索,匹配一行的开头 
$ 字符串结尾,多行检索中,匹配一行的结尾 
\b 匹配词语边界, 
\B 匹配非词语边界的位置 

 

标志:

和其他正则表达式语法不同,标志是在"/"符号之外说明的,既它们不出现在两个斜杠之间,位于第二个斜杠后面. 
如 i :匹配不区分大小写  g :匹配应该是全局的,找出所有的匹配 
/\bjava\b/gi  ----->查找一个字符串中找到所有出现的"java" 
   m :以多行模式匹配 /Java$/mi  --->匹配 "java" 和 "Java\nisfun" 

 
String对象使用正则表达式:
String类支持4种方法用正则表达式:


1.search():
        以正则为参数,返回第一个匹配的开始字符位置,否则返回-1
        例如:
       "Javascript".search(/script/i);  ----->返回4


2.replace(): 
        传入正则参数与要修改成的字符串
        例如: 将所有"javascript"统一为"JavaScript"
       text.replace(/javascript/gi,"JavaScript");


3.match():
        传入正则表达式,返回匹配的数组
        例如:  "1 plus 2 equals 3".match(/\d+/g);   --->返回["1","2","3"]


解析URL:

<script language="JavaScript">
			//[a-zA-Z0-9]一个或者多个 "://"  [a-zA-Z0-9]一个或多个 "/" 非空白符0或多个
			 var url=/(\w+):\/\/([\w.]+)\/(\S*)/;
			var text="Visit my blog at http://www.example.com/~david";
			var result=text.match(url);
			if(result!=null){
				var fullurl=result[0]; //-->http://www.example.com/~david
				var protocol=result[1]; //-->http
				var host=result[2];	//-->www. example.com
				var path=result[3];	//--->~david
				alert("fullurl="+fullurl+",protocol="+protocol+",host="+host+",path="+path);
			}
		</script>	


RegExp对象:表达正则表达式的对象;
        提供几种方法创建正则表达式:
        1.=new RegExp() ,传入正则
        2.=new RegExp(,) 传正则和模式组合,如 mi,gi等 =new RegExp("\\d{5}","mi");

RegExp模式匹配方法:
        1.exec():
                 未匹配,返回null,找到,则返回一个数组
                 例如: 
               

 var pattern=/Java/g; 
var text="JavaScript is more fun than Java"; 
var result; 
alert(pattern.exec(text)); 
while((result=pattern.exec(text))!=null){ 
alert("匹配上"+result[0]+" ' 在位置"+result.index+" 上,下次匹配从 "+pattern.lastIndex+"开始"); 
} 

         2.test():传入正则; 
               

var pattern=/java/i; 
 pattern.test("JavaScript"); //returns true; 

 

RegExp都有五个属性:
1.source :只读字符串,存放正则表达式文本
2.global :只读布尔型,是否有标志g
3.ignoreCase :只读布尔型,是否有标志i
4.multiline :只读布尔型,是否有标志m
5.lastIndex :可读写整数,对于有g标志模式来说,存储字符串下一次开始检索的位置。

 

分享到:
评论

相关推荐

    javascript正则表达式迷你书 (1).pdf

    JavaScript 正则表达式迷你书 本书是 JavaScript 正则表达式的入门级教程,旨在帮助读者快速掌握正则表达式的基本概念和应用。下面是本书的知识点摘要: 第一章:正则表达式字符匹配攻略 * 两种模糊匹配:横向...

    JavaScript正则表达式迷你书

    《JavaScript正则表达式迷你书》是一本关于JavaScript正则表达式的专业书籍,正则表达式是处理字符串的强大工具,广泛应用于编程语言中的文本处理。本书从字符匹配、位置匹配、括号的作用、回溯法原理、拆分、构建和...

    javascript正则表达式学习笔记

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

    javascript正则表达式综合练习

    JavaScript正则表达式是编程语言中的一个重要组成部分,用于处理文本模式匹配和字符串操作。这篇博客“javascript正则表达式综合练习”可能是一个实践教程或示例集合,旨在帮助开发者提升在JavaScript中使用正则...

    JavaScript正则表达式迷你书(1.1版)_程序逻辑_

    **JavaScript正则表达式迷你书(1.1版)** 正则表达式是JavaScript中一个强大的工具,用于处理文本字符串,进行模式匹配和查找、替换等操作。它们在编程逻辑中扮演着至关重要的角色,尤其是在处理字符串数据时,...

    javascript正则表达式详解 (chm)

    javascript正则表达式详解 (chm)

    javaScript 正则表达式详解

    JavaScript 正则表达式详解 JavaScript 中的正则表达式是指使用特殊字符来描述字符串模式的表达式。正则表达式可以用来匹配、检索和操作字符串。 RegExp 对象 在 JavaScript 中,正则表达式可以被定义为一个 ...

    javascript正则表达式详解

    JavaScript正则表达式是JavaScript语言中一种极为重要的文本处理工具,它允许通过简洁的语法定义文本的匹配模式。这些模式可用来对字符串进行检索、替换、提取等操作。了解和掌握JavaScript正则表达式,对于提高...

    Javascript正则表达式测试网页.rar

    JavaScript正则表达式是网页开发中的重要工具,用于处理文本数据的验证、查找、替换等操作。在网页制作过程中,熟练掌握正则表达式能够极大地提高代码效率和灵活性。本压缩包“Javascript正则表达式测试网页.rar”...

    JavaScript正则表达式.ppt

    了解正则表达式概念 掌握正则表达式的语法 熟练掌握正则表达式在JavaScript中的应用

    常用Javascript正则表达式汇总

    以下是一些常见的JavaScript正则表达式及其应用: 1. **匹配中文字符**:`[\u4e00-\u9fa5]` 这个正则表达式用于匹配Unicode范围内的中文字符,包括所有汉字。例如,如果你想在一个字符串中查找所有中文字符,可以...

    javascript正则表达式表单验证大全

    ### JavaScript正则表达式在表单验证中的应用详解 在Web开发中,表单验证是确保数据质量和用户体验的重要环节。JavaScript正则表达式提供了一种强大的工具,用于前端数据校验,确保用户输入的数据格式正确无误。...

    经典JavaScript正则表达式实战

    下面详细解析了文档中提到的JavaScript正则表达式实战应用的各个方面。 首先,匹配结尾的数字是正则表达式的一个常用功能。在JavaScript中,可以使用正则表达式/\d+$/g来实现。这个表达式可以找到字符串中最后一个...

    JavaScript正则表达式工具

    JavaScript正则表达式工具是一种基于JavaScript开发的应用程序,旨在帮助开发者和编程爱好者更方便地理解和使用正则表达式。在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于字符...

Global site tag (gtag.js) - Google Analytics