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 正则表达式迷你书 本书是 JavaScript 正则表达式的入门级教程,旨在帮助读者快速掌握正则表达式的基本概念和应用。下面是本书的知识点摘要: 第一章:正则表达式字符匹配攻略 * 两种模糊匹配:横向...
《JavaScript正则表达式迷你书》是一本关于JavaScript正则表达式的专业书籍,正则表达式是处理字符串的强大工具,广泛应用于编程语言中的文本处理。本书从字符匹配、位置匹配、括号的作用、回溯法原理、拆分、构建和...
这篇学习笔记将深入探讨JavaScript正则表达式的概念、语法和实际应用。 一、正则表达式基础 1. 创建正则表达式: - 字面量表示法:`/pattern/flags` - 构造函数:`new RegExp('pattern', 'flags')` 2. 常见的...
JavaScript正则表达式是编程语言中的一个重要组成部分,用于处理文本模式匹配和字符串操作。这篇博客“javascript正则表达式综合练习”可能是一个实践教程或示例集合,旨在帮助开发者提升在JavaScript中使用正则...
**JavaScript正则表达式迷你书(1.1版)** 正则表达式是JavaScript中一个强大的工具,用于处理文本字符串,进行模式匹配和查找、替换等操作。它们在编程逻辑中扮演着至关重要的角色,尤其是在处理字符串数据时,...
javascript正则表达式详解 (chm)
JavaScript 正则表达式详解 JavaScript 中的正则表达式是指使用特殊字符来描述字符串模式的表达式。正则表达式可以用来匹配、检索和操作字符串。 RegExp 对象 在 JavaScript 中,正则表达式可以被定义为一个 ...
JavaScript正则表达式是JavaScript语言中一种极为重要的文本处理工具,它允许通过简洁的语法定义文本的匹配模式。这些模式可用来对字符串进行检索、替换、提取等操作。了解和掌握JavaScript正则表达式,对于提高...
JavaScript正则表达式是网页开发中的重要工具,用于处理文本数据的验证、查找、替换等操作。在网页制作过程中,熟练掌握正则表达式能够极大地提高代码效率和灵活性。本压缩包“Javascript正则表达式测试网页.rar”...
了解正则表达式概念 掌握正则表达式的语法 熟练掌握正则表达式在JavaScript中的应用
以下是一些常见的JavaScript正则表达式及其应用: 1. **匹配中文字符**:`[\u4e00-\u9fa5]` 这个正则表达式用于匹配Unicode范围内的中文字符,包括所有汉字。例如,如果你想在一个字符串中查找所有中文字符,可以...
### JavaScript正则表达式在表单验证中的应用详解 在Web开发中,表单验证是确保数据质量和用户体验的重要环节。JavaScript正则表达式提供了一种强大的工具,用于前端数据校验,确保用户输入的数据格式正确无误。...
下面详细解析了文档中提到的JavaScript正则表达式实战应用的各个方面。 首先,匹配结尾的数字是正则表达式的一个常用功能。在JavaScript中,可以使用正则表达式/\d+$/g来实现。这个表达式可以找到字符串中最后一个...
JavaScript正则表达式工具是一种基于JavaScript开发的应用程序,旨在帮助开发者和编程爱好者更方便地理解和使用正则表达式。在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于字符...