js正则表达式

       简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下:测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。

       1. exec 方法
              用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。
              rgExp.exec(str)
              参数:       rgExp  必选项。包含正则表达式模式和可用标志的正则表达式对象。
                                str     必选项。要在其中执行查找的 String 对象或字符串文字。
              说明\\     如果 exec 方法没有找到匹配,则它返回 null。如果它找到匹配,则 exec 方法返回一个数组,并且更新全局 RegExp 对象的属性,以反映匹配结果。数组的0元素包含了完整的匹配,而第1到n元素中包含的是匹配中出现的任意一个子匹配。这相当于没有设置全局标志 (g) 的 match 方法。       如果为正则表达式设置了全局标志,exec 从以 lastIndex 的值指示的位置开始查找。如果没有设置全局标志,exec 忽略 lastIndex 的值,从字符串的起始位置开始搜索。  exec 方法返回的数组有三个属性,分别是 input、index 和 lastIndex。Input 属性包含了整个被查找的字符串。Index 属性中包含了整个被查找字符串中被匹配的子字符串的位置。LastIndex 属性中包含了匹配中最后一个字符的下一个位置。
              示例\\  下面的例子举例说明了 exec 方法的用法:
                       function RegExpTest()
                       {
                              var ver = Number(ScriptEngineMajorVersion () + "." + ScriptEngineMinorVersion ());
                              if (ver >= 5.5){ // 测试 JScript 的版本。
                                     var src = "The rain in Spain falls mainly in the plain.";
                                     var re = /\w+/g; // 创建正则表达式模式。
                                     var arr;
                                     while ((arr = re.exec(src)) != null)
                                     document.write(arr.index + "-" + arr.lastIndex + arr + "\t");
                              }else{
                                     alert("请使用 JScript 的更新版本");
                              }
                       }
                       返回值:0-3The 4-8rain 9-11in 12-17Spain 18-23falls 24-30mainly 31-33in 34-37the 38-43plain

       2. test 方法\\
              返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。
              rgexp.test(str)
              参数       rgexp  必选项。包含正则表达式模式或可用标志的正则表达式对象。
                            str     必选项。要在其上测试查找的字符串。
              说明  test 方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回false。  全局 RegExp 对象的属性不由 test 方法来修改。
              示例         下面的例子举例说明了 test 方法的用法:
                       function TestDemo(re, s)
                       {
                              var s1; // 声明变量。
                              // 检查字符串是否存在正则表达式。
                              if (re.test(s)) // 测试是否存在。
                              s1 = " contains "; // s 包含模式。
                              else
                              s1 = " does not contain "; // s 不包含模式。
                              return("'" + s + "'" + s1 + "'"+ re.source + "'"); // 返回字符串。
                       }
                       函数调用:document.write (TestDemo(/ain+/ ,"The rain in Spain falls mainly in the plain."));
                       返回值:'The rain in Spain falls mainly in the plain.' contains 'ain+'

       3. match 方法
              使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。\\
              stringObj.match(rgExp)
              参数\\         stringObj  必选项。对其进行查找的 String 对象或字符串文字。
                                        rgExp  必选项。为包含正则表达式模式和可用标志的正则表达式对象。也可以是包含正则表达式模式和可用标志的变量名或字符串文字。
              说明\\  如果 match 方法没有找到匹配,返回 null。如果找到匹配返回一个数组并且更新全局 RegExp 对象的属性以反映匹配结果。  match 方法返回的数组有三个属性:input、index 和 lastIndex。Input 属性包含整个的被查找字符串。Index 属性包含了在整个被查找字符串中匹配的子字符串的位置。LastIndex 属性包含了最后一次匹配中最后一个字符的下一个位置。  如果没有设置全局标志 (g),数组的 0 元素包含整个匹配,而第 1 到 n 元素包含了匹配中曾出现过的任一个子匹配。这相当于没有设置全局标志的 exec 方法。如果设置了全局标志,元素 0 到 n 中包含所有匹配。
              示例\\  下面的示例演示了match 方法的用法:
                       function MatchDemo()
                       {
                              var r, re; // 声明变量。
                              var s = "The rain in Spain falls mainly in the plain";
                              re = /ain/i; // 创建正则表达式模式。
                              r = s.match(re); // 尝试匹配搜索字符串。
                              return(r); // 返回第一次出现 "ain" 的地方。
                       }
                       返回值:ain
                       本示例说明带 g 标志设置的 match 方法的用法。
                       function MatchDemo()
                       {
                              var r, re; // 声明变量。
                              var s = "The rain in Spain falls mainly in the plain";
                              re = /ain/ig; // 创建正则表达式模式。
                              r = s.match(re); // 尝试去匹配搜索字符串。
                              return(r); // 返回的数组包含了所有 "ain"
                              // 出现的四个匹配。
                       }
                       返回值:ain,ain,ain,ain
                       上面几行代码演示了字符串文字的 match 方法的用法。

                              var r, re = "Spain";
                              r = "The rain in Spain".replace(re, "Canada");
                              return r;
                              返回值:The rain in Canada

       4. search 方法
              返回与正则表达式查找内容匹配的第一个子字符串的位置。
              stringObj.search(rgExp)
              参数\\  stringObj  必选项。要在其上进行查找的 String 对象或字符串文字。
                                rgExp  必选项。包含正则表达式模式和可用标志的正则表达式对象。
              说明     search 方法指明是否存在相应的匹配。如果找到一个匹配,search 方法将返回一个整数值,指明这个匹配距离字符串开始的偏移位置。如果没有找到匹配,则返回 -1。
              示例\\  下面的示例演示了 search 方法的用法。
                       function SearchDemo()
                       {
                       var r, re; // 声明变量。
                       var s = "The rain in Spain falls mainly in the plain.";
                       re = /falls/i; // 创建正则表达式模式。
                       r = s.search(re); // 查找字符串。
                       return(r); // 返回 Boolean 结果。
                       }
                       返回值:18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值