桓台网站建设,玉林网站seo,东莞网站平台后缀,摄影作品展示网站设计内容来源#xff1a;JavaScript RegExp 对象参考手册 http://www.w3school.com.cn/js/jsref_obj_regexp.asp RegExp 对象 RegExp 对象属性 RegExp 对象方法 支持正则表达式的 String 对象的方法 RegExp 对象 RegExp 对象表示正则表达式#xff0c;它是对字符串执行模式匹配…内容来源JavaScript RegExp 对象参考手册 http://www.w3school.com.cn/js/jsref_obj_regexp.asp RegExp 对象 RegExp 对象属性 RegExp 对象方法 支持正则表达式的 String 对象的方法 RegExp 对象 RegExp 对象表示正则表达式它是对字符串执行模式匹配的强大工具。 直接量语法 /pattern/attributes 创建 RegExp 对象的语法new RegExp(pattern, attributes); 参数参数 pattern 是一个字符串指定了正则表达式的模式或其他正则表达式。 参数 attributes 是一个可选的字符串包含属性 g、i 和 m分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前不支持 m 属性。如果 pattern 是正则表达式而不是字符串则必须省略该参数。 返回值一个新的 RegExp 对象具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。 如果不用 new 运算符而将 RegExp() 作为函数调用那么它的行为与用 new 运算符调用时一样只是当 pattern 是正则表达式时它只返回 pattern而不再创建一个新的 RegExp 对象。 抛出SyntaxError - 如果 pattern 不是合法的正则表达式或 attributes 含有 g、i 和 m 之外的字符抛出该异常。 TypeError - 如果 pattern 是 RegExp 对象但没有省略 attributes 参数抛出该异常。 RegExp 对象属性 global RegExp 对象是否具有标志 g。 ignoreCase RegExp 对象是否具有标志 i。 lastIndex 一个整数标示开始下一次匹配的字符位置。 multiline RegExp 对象是否具有标志 m。 source 正则表达式的源文本。 RegExp 对象方法 compile 编译正则表达式也可用于改变和重新编译正则表达式。 exec 检索字符串中指定的值。返回找到的值并确定其位置。 exec() 方法的功能非常强大它是一个通用的方法而且使用起来也比 test() 方法以及支持正则表达式的 String 对象的方法更为复杂。 1、在循环中反复地调用 exec() 方法是唯一一种获得全局模式的完整模式匹配信息的方法。script typetext/javascriptvar str Visit W3School;
var patt new RegExp(W3School,g);
var result;while ((result patt.exec(str)) ! null) {document.write(result);document.write(br /);document.write(result.lastIndex);}
/script/*
输出W3School
14
*/ 2、如果 exec() 找到了匹配的文本则返回一个结果数组。否则返回 null。 此数组的第 0 个元素是与正则表达式相匹配的文本第 1 个元素是与 RegExpObject 的第 1 个子表达式(圆括号引用正则表达式的某部分)相匹配的文本如果有的话第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本如果有的话以此类推。 除了数组元素和 length 属性之外exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string。var re /(ds)(js)/ig;
var str cfdsJS *(dsjjjsYJSjs 888dsdsJS;
var resultArray re.exec(str);
while (resultArray) {document.writeln(resultArray[0]);document.writeln(next match starts at re.lastIndex br /);for (var i1; iresultArray.length; i){document.writeln(substring of resultArray[i] br /);}document.writeln(br /)resultArray re.exec(str);
}/*
输出
dsJS next match starts at 6
substring of ds
substring of JSdsjjjs next match starts at 16
substring of ds
substring of jjjsdsdsJS next match starts at 31
substring of ds
substring of JS
*/ test 检索字符串中指定的值。如果含有指定的值返回 true 否则返回 false。 调用 RegExp 对象 r 的 test() 方法并为它传递字符串 s与这个表示式是等价的(r.exec(s) ! null)。script typetext/javascript
var str Visit W3School;
var patt1 new RegExp(W3School);var result patt1.test(str);document.write(Result: result);
/script
/*
输出Result: true
*/ 支持正则表达式的 String 对象的方法 search 检索与正则表达式相匹配的值。 如果没有找到任何匹配的子串则返回 -1。 要执行忽略大小写的检索请追加标志 i。 search() 方法不执行全局匹配它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性并且总是从字符串的开始进行检索这意味着它总是返回 stringObject 的第一个匹配的位置。script typetext/javascriptvar strVisit W3School!
document.write(str.search(/w3school/i))/script
/*
输出6
*/ match 找到一个或多个正则表达式的匹配。 该方法类似 indexOf() 和 lastIndexOf()但是它返回指定的值而不是字符串的位置。 全局模式下建议使用 RegExp.exec() 代替本方法。 replace 替换与正则表达式匹配的子串。 stringObject.replace(regexp/substr,replacement) 字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g那么 replace() 方法将替换所有匹配的子串。否则它只替换第一个匹配子串。 replacement 可以是字符串也可以是函数。如果它是字符串那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示它说明从模式匹配得到的字符串将用于替换。 字符 替换文本$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。$ 与 regexp 相匹配的子串。$ 位于匹配子串左侧的文本。$ 位于匹配子串右侧的文本。$$ 直接量符号。注意ECMAScript v3 规定replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下每个匹配都调用该函数它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串可以有 0 个或多个这样的参数。接下来的参数是一个整数声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。// 1、执行一次全局替换每当 Microsoft 被找到它就被替换为 W3School
script typetext/javascriptvar strWelcome to Microsoft!
strstr We are proud to announce that Microsoft has
strstr one of the largest Web Developers sites in the world.document.write(str.replace(/Microsoft/g, W3School))/script
/*
输出Welcome to W3School! We are proud to announce that W3School
has one of the largest Web Developers sites in the world.例子 3
*///2、确保匹配字符串大写字符的正确
text javascript Tutorial;
text.replace(/javascript/i, JavaScript);//3、将把 Doe, John 转换为 John Doe 的形式
name Doe, John;
name.replace(/(\w)\s*, \s*(\w)/, $2 $1);//4、把所有的花引号替换为直引号
name a, b;
name.replace(/([^]*)/g, $1);//5、把字符串中所有单词的首字母都转换为大写
name aaa bbb ccc;
uwname.replace(/\b\w\b/g, function(word){return word.substring(0,1).toUpperCase()word.substring(1);}); split 把字符串分割为字符串数组。 stringObject.split(separator,howmany) howmany可选。该参数可指定返回的数组的最大长度。如果设置了该参数返回的子串不会多于这个参数指定的数组。 注释如果把空字符串 () 用作 separator那么 stringObject 中的每个字符之间都会被分割。 注释String.split() 执行的操作与 Array.join 执行的操作是相反的。 推荐文章 MSDN JScript 8.0 正则表达式介绍 http://msdn.microsoft.com/zh-cn/library/28hw3sce转载于:https://www.cnblogs.com/kiant71/archive/2010/08/08/1795177.html