Javascript RegExp正则表达式学习笔记
2011-10-01 15:25
627 查看
什么事正则表达式:正则表达式就是一个描述通用模型的字符串对象。
正则表达式可以干什么:可以用来进行查找文本中的字符串、转换、格式化、检查、替换、截取等操作。功能是不可小觑啊。
1、使用new关键字创建。
b)、正则表达式中的一些参数和方法
1、modifier参数
i(case-insensitive)表示忽略大小写。举一个例子。
返回的结果为null
加上i修饰符
返回的结果为I
g(global)表示全局匹配。
不加g修饰符例子:
返回的结果为a
加上g修饰符:
返回结果为a,a
m(multiline)表示匹配多行
2、一些方法
string.match(patt) 返回匹配的值。
patt.test(string) 返回是否匹配成功 的boolean值
patt.exec(string) 返回匹配成功的值,与match的用法大体相同
patt.compile(regexp,modifier) 重新指定匹配规则
3、用方括号括起来的匹配规则
Brackets are used to find a range of characters:
例子:
元字符具有通用的匹配意义:
例子:
例子:
//?=n 就是匹配出一个值,它的后面接着的是不是指定的n 如我想找出包含m的字符条件是其后面接的是akwolf
var str = "I am akwolf !!!#$%%^^@*&1990 07 04 new line";
var patt = /am(?= akwolf)/;
var ts = str.match(patt);
document.write(ts);
匹配值:am[/code]
例子:
更多请参看http://www.w3schools.com/jsref/jsref_obj_regexp.asp
正则表达式可以干什么:可以用来进行查找文本中的字符串、转换、格式化、检查、替换、截取等操作。功能是不可小觑啊。
一、语法
a)、比如说要在一段文本中进行一个字符的查找,那肯定就得指定按照什么样的规则来查找,这个规则就是pattern了。在查找的过程中如果还有一些需求比如想忽略大小写,或全文查找那就得指定一个修饰符参数了,这就是modifier了。好了,现在就来说明一下创建正则表达式的两种方法。1、使用new关键字创建。
var regObject = new RegExp(pattern,modifiers) ;2、直接静态指定。(更常用一些,注意一点在使用patter时不要忘了前后的斜线)
var regObject = /pattern/mofifiers ;
b)、正则表达式中的一些参数和方法
1、modifier参数
i(case-insensitive)表示忽略大小写。举一个例子。
var str = "I am akwolf!!!" ; var patt = /i/ ; var ts = str.match(patt) ; document.write(ts) ;
返回的结果为null
加上i修饰符
var str = "I am akwolf!!!" ; var patt = /i/i ; var ts = str.match(patt) ; document.write(ts) ;
返回的结果为I
g(global)表示全局匹配。
不加g修饰符例子:
var str = "I am akwolf!!!" ; var patt = /a/ ; var ts = str.match(patt) ; document.write(ts) ;
返回的结果为a
加上g修饰符:
var str = "I am akwolf!!!" ; var patt = /a/ig ; var ts = str.match(patt) ; document.write(ts) ;
返回结果为a,a
m(multiline)表示匹配多行
2、一些方法
string.match(patt) 返回匹配的值。
patt.test(string) 返回是否匹配成功 的boolean值
patt.exec(string) 返回匹配成功的值,与match的用法大体相同
patt.compile(regexp,modifier) 重新指定匹配规则
3、用方括号括起来的匹配规则
Brackets
Brackets are used to find a range of characters:Expression | Description |
---|---|
[a-c] | 返回与方括号中范围能匹配到的字符 |
[^a-c] | 返回除与方括号中范围匹配到的字符 |
[0-9] | 返回数字 |
[A-Z] | 返回A到Z之间的字符 |
[a-z] | 返回a到z之间的字符 |
[A-z] | 返回A到z之间的字符(在Ascii码中大写字母的码值比小写的码值要小) |
[adgk] | 返回与方括号中能匹配到的字符 |
[^adgk] | 返回除与方括号中匹配到的字符 |
(red|blue|green) | 返回指定的替换值 |
var str = "I am akwolf!!!"; var patt = /[^a-h]/ig; //匹配a-h之间的字符 var ts = str.match(patt); document.write(ts); 匹配值:a,a,f var str = "I am akwolf!!!"; var patt = /[^a-h]/ig; //匹配非a-h之间的字符 var ts = str.match(patt); document.write(ts); 匹配值:I, ,m, ,k,w,o,l,!,!,! var str = "19900704" ; var patt = /[0-5]/ig; //匹配0-5之间的字符 var ts = str.match(patt); document.write(ts); 匹配值:1,0,0,0,4 var str = "19900704" ; var patt = /[^0-5]/ig; //匹配6-9之间的字符 var ts = str.match(patt); document.write(ts); 匹配值:9,9,7 var str = "I am akwolf!!!"; var patt = /[A-z]/ig; //匹配所有单词之间的字符 var ts = str.match(patt); document.write(ts); 匹配值:I,a,m,a,k,w,o,l,f var str = "I am akwolf!!!"; var patt = /[ak]/ig; //匹配a,k的字符 var ts = str.match(patt); document.write(ts); 匹配值:a,a,k var str = "I am akwolf!!!"; var patt = /[ak]/ig; //匹配非a,k的字符 var ts = str.match(patt); document.write(ts); 匹配值:I, ,m, ,w,o,l,f,!,!,! var str = "I am akwolf!!!"; var patt = /(ak)/ig; //匹配ak的字符 var ts = str.match(patt); document.write(ts); 匹配值:ak4、元字符
Metacharacters
元字符具有通用的匹配意义:Metacharacter | Description |
---|---|
. | 匹配单个字符,除了换行符和行结束符 |
\w | 匹配单词字符(word) |
\W | 匹配非空白字符 |
\d | 匹配数字字符(digit) |
\D | 匹配非数字字符(digit) |
\s | 匹配空白字符(whitespace) |
\S | 匹配非空白字符 |
\b | 匹配开始或结束单词 |
\B | 匹配非开始或结束单词 |
\0 | Find a NUL character |
\n | 匹配换行符 |
\f | Find a form feed character |
\r | Find a carriage return character |
\t | Find a tab character |
\v | Find a vertical tab character |
\xxx | Find the character specified by an octal number xxx |
\xdd | Find the character specified by a hexadecimal number dd |
\uxxxx | Find the Unicode character specified by a hexadecimal number xxxx |
var str = "I am akwolf!!!#$%%^^@*&"; var patt = /./ig; //匹配除了换行符和行结束符的字符 var ts = str.match(patt); document.write(ts); 匹配值:I, ,a,m, ,a,k,w,o,l,f,!,!,!,#,$,%,%,^,^,@,*,& var str = "I am akwolf!!!#$%%^^@*&"; var patt = /\w/ig; //匹配单词字符,注意反斜杠(\)不可少 var ts = str.match(patt); document.write(ts); 匹配值:I,a,m,a,k,w,o,l,f var str = "I am akwolf!!!#$%%^^@*&19900704"; var patt = /\d/ig; //匹配数字字符 var ts = str.match(patt); document.write(ts); 匹配值:1,9,9,0,0,7,0,4 var str = "I am akwolf!!!#$%%^^@*&1990 07 04"; var patt = /\s/ig; //匹配空白字符 var ts = str.match(patt); document.write(ts); 匹配值:, , ,
[code]
5、数量表示词
量词 | 描述 |
---|---|
n+ | 匹配n至少一次 |
n* | 匹配n任意次 |
n? | 匹配n出现0或一次 |
n{X} | 匹配n出现指定的次数 |
n{X,Y} | 匹配n出现x到y之间的次数 |
n{X,} | 匹配n至少出现x次 |
n$ | 匹配以n结尾的字符 |
^n | 匹配以n开头的字符 |
?=n | 匹配后面接着指定的字符n的字符 |
?!n | 匹配后面接着非指定的字符n的字符 |
//?=n 就是匹配出一个值,它的后面接着的是不是指定的n 如我想找出包含m的字符条件是其后面接的是akwolf
var str = "I am akwolf !!!#$%%^^@*&1990 07 04 new line";
var patt = /am(?= akwolf)/;
var ts = str.match(patt);
document.write(ts);
匹配值:am[/code]
6、正则对象的一些属性
Property | Description |
---|---|
global | 由于检测g修饰符是否指定 |
ignoreCase | 由于检测i修饰符是否指定 |
lastIndex | 返回匹配成功字符串的最后一个单词的索引 |
multiline | 由于检测m修饰符是否指定 |
source | 返回指定的正则匹配规则 |
var patt = /am(?= akwolf)/; document.write(patt.global); 匹配值:false var patt = /am(?= akwolf)/i; document.write(patt.ignoreCase); 匹配值:true var str = "I am akwolf !!!#$%%^^@*&1990 07 04 new line"; var patt = /[0-9]/ig; if(patt.test(str)){ document.write(patt.lastIndex); } 匹配值:25 var patt = /[0-9]/ig; document.write(patt.source); 匹配值:[0-9]
更多请参看http://www.w3schools.com/jsref/jsref_obj_regexp.asp
相关文章推荐
- JavaScript学习笔记-正则表达式(RegExp对象)
- 重温JavaScript中的正则表达式 js学习笔记
- JavaScript之正则表达式学习笔记
- (学习笔记)简单正则表达式的使用实例[javascript]
- javascript学习笔记(五)正则表达式
- javascript学习笔记(十一) 正则表达式介绍
- JavaScript学习笔记之正则表达式
- JavaScript高级程序设计(第3版)学习笔记12——正则表达式
- Javascript学习笔记——正则表达式
- 轻松学习JavaScript十四:JavaScript的RegExp对象(正则表达式)
- javascript学习笔记:正则表达式1
- 正则表达式学习-JavaScript RegExp 对象
- 韩顺平 javascript教学视频_学习笔记34_js正则表达式详解
- JavaScript正则表达式学习笔记
- JavaScript中的正则表达式学习笔记
- 从零开始学习前端JAVASCRIPT — 9、JavaScript基础RegExp(正则表达式)
- Javascript学习笔记-----正则表达式
- JavaScript正则表达式(学习笔记)
- javascript正则表达式学习笔记
- JavaScript 正则表达式学习笔记