正则javascript,正则表达式生成器

关于javascript的正则表达式

因为.*表示点0到无数次重复,等同于.{0,},也就是说可以不重复(0次重复),所以你第二个正则表达式,可以等同于第一个正则表达式,因为.*可以为0次重复.

成都创新互联公司主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站、程序开发、网站优化、微网站、小程序定制开发等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的网站设计制作、网站建设、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。

如果你把.*改成.+输出就是false了,因为.+表示点1到无数次重复,等同于.{1,}

下面给你一个.+的例子,你看看吧,结果为false

script type=text/javascript

var pattem = /8go..+gle8/; 

var str = '8google8'; 

alert(pattem.test(str));

/script

运行结果

false

关于JavaScript的正则表达式

"." 表示:匹配除换行符以外的任意字符

如:888 8-8 8a8 等 中间可以写任意字符

JavaScript 实现基础 正则表达式

JavaScript通过RegExp类来支持正则表达式,举一个最简单的例子:

复制代码

代码如下:

var

regApple

=

new

RegExp("apple");

它可以匹配一个字符串中出现的第一个"apple"字符串,并且对大小写敏感。在构造方法中加入第二个参数"g"则代表的搜索出字符串中所有的

"apple",这里"g"代表"global"。如果第二个参数为"i",则代表着case-insensitive,匹配过程中将不考虑字母的大小写。将上述两者综合起来,可以搜索出所有"apple"字符串,并且不考虑大小写问题。

复制代码

代码如下:

var

regApple

=

new

RegExp("apple",

"gi");

正则表达式有着并不唯一的表示方法,使用Perl语言中的语法,可以将上述表达式表示为:

复制代码

代码如下:

var

regApple

=

/apple/gi;

创建了一个RegExp对象后,RegExp的方法可以构造出不同的匹配方式,因为正则表达式是对字符串进行的操作,所以String的一些方法在构造正则表达式的过程中也扮演着重要角色。

RegExp对象的方法

复制代码

代码如下:

var

sampleString

=

"Greenapple";

var

regApple

=

/apple/;

alert(regApple.test(sampleString));

上面代码输出的结果是"true",因为sampleString中包含了需要匹配的字符串"apple",这是最简单的检测方式。有时,我们需要知道匹配的详细结果,例如:

复制代码

代码如下:

var

sampleString

=

"green

apples,

red

apples";

var

regApple

=

/apple/g;

var

arr

=

regApple.exec(sampleString);

通过使用exec()方法,返回的arr是关于匹配结果的一个数组,包括每一个匹配的值及其所在的段,例如上例中是"green

apples"还是"red

apples"。match()方法有着和exec()相同的功能,只是表达方式不同:

复制代码

代码如下:

var

sampleString

=

"green

apples,

red

apples";

var

regApple

=

/apple/g;

var

arr

=

sampleString.match(regApple);

search()方法和indexOf()比较类似,返回第一个匹配的字符串所在的位置:

复制代码

代码如下:

var

sampleString

=

"green

apples,

red

apples";

var

regApple

=

/apple/gi;

alert(sampleString.search(regApple));

//输出"6"

String的方法

String的replace()方法可以将指定的字符串替换为另一个字符串:

复制代码

代码如下:

var

sampleString

=

"There

is

a

green

apple.";

alert(sampleString.replace("green",

"red"));

//输出"There

is

a

red

apple."

将replace()的第一个参数替换为一个正则表达式,可以达到同样的效果:

复制代码

代码如下:

var

sampleString

=

"There

is

a

green

apple.";

var

regApple

=

/apple/;

alert(sampleString.replace(regApple,

"red"));

//输出"There

is

a

red

apple."

replace()的第二个参数可以替换为一个function(),该function()接受一个匹配字符串作为参数,返回一个替换字符串。(存在疑问)

使用正则表达式可以实现String的split()方法相同的功能。

复制代码

代码如下:

var

fruit

=

"apple,pear,lemon";

var

arr

=

fruit.split(",");

使用正则表达式:

复制代码

代码如下:

var

fruit

=

"apple,pear,lemon";

var

reg

=

/\,/;

var

arr

=

fruit.split(reg);

javascript正则表达式

一、

当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。

二、

有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。现在看看懒惰版的例子吧:

a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)。

三、代码/语法 说明

① *? 重复任意次,但尽可能少重复

② +? 重复1次或更多次,但尽可能少重复

③ ?? 重复0次或1次,但尽可能少重复

④ {n,m}? 重复n到m次,但尽可能少重复

⑤ {n,}? 重复n次以上,但尽可能少重复


本文名称:正则javascript,正则表达式生成器
文章网址:http://ybzwz.com/article/dsiosso.html