用正则虽多
但是对这个对象并不是很了解,所以做点笔记 记的是一些我不熟悉的东西 嘿嘿.............
例化RegExp对象
1.直接写
var reg = /\d+/g
2.new RegExp
new RegExp("\\d+","g")
(1) i,g,m放在第2个参数上
(2) 斜杠要转义 所以是\\
第一种用法很常见了 我也喜欢直接这么用(主要是因为那些字符要转义 我不是很清楚)
第2中在某种字符串不确定的时候还是很有用的 比如一下的例子
var str = '<div class="your sister" id="myid" name="myname" sister="yousister"></div>';
function getAttr(attr,str){
var reg = new RegExp(attr+"\\s*=\\s*(['\"]?)(.*?)\\1");
return reg.exec(str)[2];
}
getAttr("id",str);
getAttr("class",str);
getAttr("name",str);
getAttr("sister",str);
RegExp实例属性
global 布尔值,表示是否标识了g.
ignoreCase 布尔值,表示是否标识了i.
multiline 布尔值,表示是否标识了m.
source 字符串,表示创建RegExp对象实例时指定的表达式文本字符串.
lastIndex整数,表示开始搜索下一个匹配项的字符位置,从0开始算 (ps只是设置了g,然后执行exec或者test才会从下一个开始算, 不然一直从0开始算)
例子
var reg = /ab\d+/g;
alert(reg.global); //true
alert(reg.ignoreCase); //false
alert(reg.multiline); //false
alert(reg.source); //ab\d+
lastIndex的例子
var reg = /\d+/;
var str = "123asd456vbn789";
alert(reg.exec(str)); //123
alert(reg.lastIndex); //0
alert(reg.exec(str)); //123
alert(reg.lastIndex); //0
alert(reg.exec(str)); //123
alert(reg.lastIndex); //0
var reg1 = /\d+/g; //设置了g
alert(reg1.lastIndex); //0
alert(reg1.exec(str)); //123
alert(reg1.lastIndex); //3
alert(reg1.exec(str)); //456
alert(reg1.lastIndex); //9
alert(reg1.exec(str)); //789
alert(reg1.lastIndex); //15
RegExp构造函数属性
Input 最近一次zuij匹配的字符串
lastMatch 最近一次的匹配项
lastParen 最近一次的匹配捕获组
leftContext input中lastMath之前的文本 (是lastMatch 不是lastParen)
rightContext input中lastMath之后的文本
$1-9 表示这次匹配的捕获组 依次RegExp.$1,RegExp.$2,RegExp.$3,RegExp.$4,
var reg = /<div id="(.*?)" name="(.*?)" class="(.*?)"/,
str = '<div id="myid" name="myname" class="myclass" action="your sister">';
reg.exec(str);
alert(RegExp.$1); //myid
alert(RegExp.$2); //myname
alert(RegExp.$3); //myclass
alert(RegExp.lastMatch); //<div id="myid" name="myname" class="myclass"
alert(RegExp.lastParen); //myclass
var reg1 = /\d+/g,
str1 = '12nm34sdf56oiu78sx';
reg1.exec(str1);
alert(RegExp.leftContext); //空的 因为12左边没有东西
alert(RegExp.rightContext); //nm34sdf56oiu78sx
reg1.exec(str1);
alert(RegExp.leftContext); //12nm
alert(RegExp.rightContext); //sdf56oiu78sx
//继续执行 同理了
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
JavaScript 中的 RegExp 对象用于正则表达式相关的操作,这个对象提供了一个方法 test 来判定某个字符串是否满足某个 pattern. 返回值是 true/false. 今天我碰到了一个问题: [Ctrl+A 全选 注:如需引入外部...
一、RegExp对象概述 RegExp对象表示正则表达式,RegExp是正则表达式的缩写,它是对字符串执行模式匹配的强大工具。RegExp对象用于规定在文本中检索的内容。当您检索某个文本时,可以使用一种模式来描述要检索的...
RegExp对象是原生JavaScript中表示正则表达式的对象。 创建对象的方法为:var RegExp = new RegExp(pattern, attributes); 参数pattern指定正则表达式的规则或者表示正则表达式模式的字符串; 参数attributes为可选...
RegExp对象的创建: 常规的正则表达式的创建可用直接量,即斜杠 “/” 括起来的字符。但在要求参数变化的环境下,RegExp()构造函数是更好的选择: var reg1 = /’\w+’/g; var reg2 = new RegExp(‘\’\\w+\”,’g’...
介绍正则表达式的对象 和经常使用的方法 该文件是个网页副本 如果联网会获得更多使用的信息
以下的代码,是测试从字符串中识别出年月日,可以看到创建的rYMD这个RegExp对象执行了一次后,又执行了一次。 var DateStr = "2014-9-8"; var rYMD = new RegExp("(\\d{4}|\\d{2})-(\\d{2}|\\d{1})-(\\d{2}|\\d{1})...
有两种方式可以创建RegExp对象的实例。 使用RegExp的显式构造函数,语法为:new RegExp(“pattern”[,”flags”])。 使用RegExp的隐式构造函数,采用纯文本格式:/pattern/[flags]。 pattern部分为要使用的正则...
JavaScript提供了一个RegExp对象来完成有关正则表达式的操作和功能,每一条正则表达式模式对应一个RegExp实例。有两种方式可以创建RegExp对象的实例。
比较两个 RegExp 对象是否相等 应用程序接口 var isRegexEqual = require('compare-regexes') isRegexEqual( RegExp Object , RegExp Object ) 用法 var isRegexEqual = require ( 'compare-regexes' ) ; var ...
检查给定的值是一个RegExp 对象 应用程序接口 var isRegExp = require('is.regexp') isRegExp(正则表达式对象) 用法 var isRegExp = require ( 'is.regexp' ) ; var obj1 = / 2 [ 0-4 ] [ 0-9 ] / var obj2 = { }...
RegExp对先看整个字符串是不是匹配,如果没有发现匹配,先去掉最后字符串中的最后一个字符,并再次尝试,如果还没有发现匹配,那么再次去掉最后一个字符,这个过程会一直重复下去直到发现匹配或不剩任何字符串,上面...
RegExp 就是这种模式。 简单的模式可以是一个单独的字符。 更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。 您可以规定字符串中的检索位置,以及要检索的字符类型,等等。 1.基本用法 [removed...
主要介绍了RegExp 随笔 JavaScript RegExp 对象,需要的朋友可以参考下
JavaScript 核心参考教程RegExp对象,学习正则表达式的朋友可以参考下。
该属性为RegExp的静态只读属性,该属性的值为与RegExp对象所描述的正则表达式进行匹配检测的字符串,该属性也可以表示成$_