外文翻译——JavaScript Tutorial——Regular Expression——(1)

原文地址:http://javascript.info/tutorial/regexp-introduction

简介

正则表达式有非常强大的用于字符串“查找”和“替换”的功能。在JS中,它被集成在字符串方法:search, match和replace中。

正则表达式,由一个pattern(匹配规则)和flags(修饰符—可选)组成。

一个基本的正则匹配跟子串匹配一样。斜杠"/"包围的字符串可以创建一个正则表达式。

1 regexp = /att/
2
3 str = "Show me the pattern!"
4
5 alert( str.search(regexp) ) // 13

上面例子中,str.search方法返回了正则式"att"在字符串"Show me the pattern!"中的位置。

在实际运用中,正则式可能会更加复杂。下面的正则式匹配email地址:

1 regexp = /[a-z0-9!$%&‘*+\/=?^_`{|}~-]+(?:\.[a-z0-9!$%&‘*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b/
2
3 str = "Let‘s find an [email protected] here"
4
5 alert( str.match(regexp) )   // [email protected]

str.match方法输出匹配的结果。

学完本教程以后,你不仅能完全理解上面的正则式,还能创造更复杂的正则式。

在JS控制台中,你可以直接调用str.match方法测试正则式

1 alert( "lala".match(/la/) )

在这里,我们会让demo短一点,并利用方便的showMatch函数输出正确的匹配结果:

1 showMatch( "Show me the pattern!", /att/ )  // "att"
 1 function showMatch(str, reg) {
 2   var res = [], matches;
 3   while(true) {
 4     matches = reg.exec(str)
 5     if (matches === null) break
 6     res.push(matches[0])
 7     if (!reg.global) break
 8   }
 9   alert(res)
10 }

接下来的教程里,我们将开始学习正则式的语法。

时间: 2024-10-05 04:27:44

外文翻译——JavaScript Tutorial——Regular Expression——(1)的相关文章

外文翻译——JavaScript Tutorial——Regular Expression——(2)

字符类 假设我们要在字符串中查找一个数字.不是指定的数字,而是任意数字,比如:在"Only 1"中查找"1",在"Give me a 5"中查找"5". 子串匹配可以在循环中用来查找0-9中的所有数字.但是采用正则式可以更优雅地处理这种情况. 正则式可以利用字符类代替具体的字符. 例如,正则式中用"\d"来表示任意数字.下面例子中匹配了一个数字: 1 showMatch( "I'm 5 years

外文翻译——JavaScript Tutorial——Regular Expression——(4)

修饰符 一个正则式可能包含一个能影响搜索结果的修饰符. JS中有3个修饰符: g:查找所有结果: i:结果忽略大小写: m:多行匹配模式: 修饰符放在参数后面,如:/.../g. 没有全局修饰符的正则式只返回第一个匹配值: 1 alert( "123".match( /\d/ )) // '1' 如果有全局修饰符,所有匹配值都会被返回: 1 alert( "123".match( /\d/g )) // '1', '2', '3' 多个修饰符也是可行的.比如:忽略大

外文翻译——JavaScript Tutorial——Regular Expression——(3)

特殊字符 在正则式中,有些字符有特殊的用法:[ \ ^ $ . | ? * + ( ). 因为用来增强正则式的匹配功能,所以它们很特殊.不要尝试去记忆它们,等我们都用过以后,你就能轻松记住了. 要把特殊字符当普通标识使用,就必须转义.也就是说,需要在前面加上反斜杠. 比如,我们要查找点".".在正则式中,它代表除换行符以外的所有字符. 所以我们需要转义它: 1 showMatch( "Chapter 5.1", /\d\.\d/ ) // 5.1 如果不转义,&qu

[label][翻译][JavaScript Regular Expression]JavaScript Regular Expressions

原文:http://www.javascriptkit.com/javatutors/re.shtml 校验用户的输入是每一个软件开发者的必须要做的事情. 正则表达式与模式 如何在JavaScript中使用正则表达式呢?这里有两种方式: 1)字面量语法. 2)当你需要动态构建正则表达式时,可以通过RegExp()构造函数. 字面量语法如下: var RegularExpression = /pattern/; RegExp()构造函数方法如下: var RegularExpression = n

JavaScript Patterns 3.6 Regular Expression Literal

1. Using the new RegExp() constructor // constructor var re = new RegExp("\\\\", "gm"); 2. Using the regular expression literal // regular expression literal var re = /\\/gm;  when using the RegExp()constructor, you also need to escape

[LeetCode][JavaScript]Regular Expression Matching

Regular Expression Matching Implement regular expression matching with support for '.' and '*'. '.' Matches any single character. '*' Matches zero or more of the preceding element. The matching should cover the entire input string (not partial). The

Python正则表达式Regular Expression基本用法

资料来源:http://blog.csdn.net/whycadi/article/details/2011046   直接从网上资料转载过来,作为自己的参考.这个写的很清楚.先拿来看看. 1.正则表达式re模块的基本函数. (1)findall函数的用法 findall(rule,target[,flag])是在目标字符串中找到符合规则的字符串.参数说明:rule表示规则,target表示目标字符串,[,flag]表示的是规则选项.返回的结果是一个列表.若没找到符合的,是一个空列表. 如: 因

Regular Expression(正则表达式)之邮箱验证

正则表达式(regular expression, 常常缩写为RegExp) 是一种用特殊符号编写的模式,描述一个或多个文本字符串.使用正则表达式匹配文本的模式,这样脚本就可以轻松的识别和操作文本.其实,正则表达式是值得大家花时间学习的.正则表达式不仅在javaScript 中有用,在其他许多地方也可以使用正则表达式,例如其他编程语言(比如Perl,Java,C#,Python 和PHP ),Apache 配置文件以及BBEdit 和TextMate 等文本编辑器.甚至Adobe Dreamwe

LeetCode 10 Regular Expression Matching (正则表达式匹配)

翻译 实现支持"."和"*"的正则表达式匹配. "." 匹配支持单个字符 "*" 匹配零个或多个前面的元素 匹配应该覆盖到整个输入的字符串(而不是局部的). 该函数的原型应该是: bool isMatch(const char * s, const char * p) 示例: isMatch("aa","a") → false isMatch("aa","a