一个JS正则的题

_____紫金战神

_____紫金战神

2016-02-19 13:51

下面是个简单易学的一个JS正则的题教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

贴出来与大家共勉。

先看一段代码,
script
var objReg = /^[a-zA-Z]{1}(:){1}$/gi;
alert(objReg.test("a:"));//返回true
alert(objReg.test("a:"));//返回false
/script

为什么第二个test会返回false?是不是觉得奇怪。
原因我解答如下:
test实际上与exec方法的执行方法是一致的,只是返回值不一样。test返回的是true or false(如果exec返回的不是null),exec返回的是pattern(匹配)。
而exec的执行过程为:带有g参数时,下次匹配时,自动会跳到lastIndex后的位置,也就是这里的第2个位置。而这个位置与pattern显然不匹配。因此返回false。

解决方法:
(1)
可以不使用g(全局参数)也就是这样-
script
var objReg = /^[a-zA-Z]{1}(:){1}$/i;
alert(objReg.test("a:"));//返回true
alert(objReg.test("a:"));//返回true
/script

(2)
可以用lastIndex=0来还原-
var objReg = /^[a-zA-Z]{1}(:){1}$/gi;
alert(objReg.test("a:"));//返回true
objReg.lastIndex=0;
alert(objReg.test("a:"));//返回true

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
展开更多 50%)
分享

猜你喜欢

一个JS正则的题

Web开发
一个JS正则的题

JS:一个匹配日期的正则

Web开发
JS:一个匹配日期的正则

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一个非常不错的一个正则练习JS版

Web开发
一个非常不错的一个正则练习JS版

一个非常简单的题

编程语言 网络编程
一个非常简单的题

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个正则的写法 php

Web开发
一个正则的写法 php

发一个分页的js

Web开发
发一个分页的js

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

正则表达式的使用话题

正则表达式的使用话题

为SQL Server提供更多的内存

为SQL Server提供更多的内存
下拉加载更多内容 ↓