Rumah > Artikel > hujung hadapan web > 你必须了解,JS中通过字面量RegExp创建正则表达式的相关语法
正则表达式是通过字面量RegExp创建的,它由字符串所组成,在匹配过程中区分大小写,本文介绍了支持字符串对象match、replace、split的方法和RegExp对象属性及RegExp对象方法。
RegExp方法:test和exec
test方法将判断以参数传入的字符串是否与正则表达式相匹配。如:
var re=/JavaScript rules/;
var str="JavaScript rules";
if(re.test(str)) document.writeln(" Hello world");
正则表达式匹配过程是区分大小写的。如果希望不区分大小写进行匹配,那么可以在正则表达式后面的第二个斜杠后面添加字母i,例如:var re=/javascript rules/i;
i:强制匹配过程忽略大小写
g:全局匹配。指导模式匹配过程查找与模式匹配的所有模式,而忽略模式在该行的字符串中的位置。如果不是用全局标记g,那么只会替换或者返回第一个匹配项。
m:多行匹配。例如:^表示一行的开始,$表示一行的结束。
例子:在整个exec方法将根据特定模式/js*/在整个字符串中进行查找。在返回的结果数组中,第一个元素就是匹配模式的字符串,接着继续查找下一个匹配:
var re=new RegExp('js*','ig');
var str='cfdsjs.*JS($%^Js';
var resultArray=re.exec(str);
while(resultArray){
document.writeln(resultArray[0]);
document.writeln("Hello world"+re.lastIndex+'
');
resultArray=re.exec(str);
}
把RegExp中的lastIndex属性设置为在每一次连续调用中找到的上一个模式的位置,每次exec调用都会查找下一个模式。
exec方法将返回一个数组,但是数组元素并不是所有的匹配项,而是当前匹配项和所有带括号的子字符串。如果在整个字符串中使用圆括号匹配子字符串,那么子字符串将包含在最终数组中连续数组元素中,最终数组位于整个匹配字符串后面位于数组第0个位置。
\s:表示空白字符
*:表示前面的字符出现0次或多次
+:表示加号前面的字符出现一次或多次
?:表示前面的字符出现0次或一次
.:表示字符只出现一次
.*:贪婪匹配。
.*?:延迟匹配。(返回为空,0次)
\D:非数字([^0-9])
\d:只匹配数字 ([0-9])
^n:匹配任何开头以n的字符串
n$:匹配任何结尾以n的字符串
?=n:匹配任何其后紧接指定字符串n的字符串
?!n:匹配任何其后没有紧接指定字符串n的字符串
\w:任何数字字母字符
\W:任何非数字字母字符
a|b:匹配字母a或字母b
s{2}:大括号表示前面的字符重复的次数
\0:查找NUL字符
\n:查找换行符
\r:查找回车符
\f:查找换页符
\t:查找制表符
\v:查找垂直制表符
\b:匹配单词边界
\xxx:查找八进制xxx规定的字符
\xdd:查找十六进制规dd定的字符
\uxxxx:查找以十六进制xxxx规定的Unicode内容
找到一个或多个正则表达式的匹配
var resultArray=str.match(rgExp);
var resultArray=str.replace(rgExp,"$2-$1");//子字符串第一个和第二个替换,得到替换后的str
检索与正则表达式相配的值
把字符串分割为字符串数组
$1--$9保存圆括号中的数值
global:是否具有标志g
ignoreCase:是否具有标志i
lastIndex:一个整数,标示开始下一次匹配的字符位置
multiline:RegExp对象是否具有标志m
source:正则表达式的源文本
compile:编译正则表达式
exec:检索字符串中指定的值,返回找到的值,并确定其位置
test:检索字符串中指定的值,返回true或false
相关推荐
详解JavaScript正则表达式之RegExp对象_javascript技巧
JavaScript类型系统之正则表达式_javascript技巧
Atas ialah kandungan terperinci 你必须了解,JS中通过字面量RegExp创建正则表达式的相关语法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!