正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)

  一 正则表达式的正文。

  正则表达式中使用了特殊符号。下面我就将各种符号以及其意义和用法简单的介绍一下(说明:"X以上包括X"):

  / 表示在其后的文字是特殊符号。例:"n"和"n"是一致的。"/n"和换行符是一致的。

  ^ 和输入的开始一致。

  $ 和输入的结尾一致。

  * 与此符号之前的文字0次以上相同的话,两者一致。例:"zo*"和"zoo","z"都一致。

  + 与此符号之前的文字1次以上相同的话,两者一致。例:"zo*"和"zoo"一致,但和"z"不一致。

  ? 与此符号之前的文字0次或1次相同的话,两者一致。例:"a?ve?"和"never"的"ve"一致。

  . 与除了换行符的所有单一文字一致。

  (正则表达式) 以所指定的表达式寻找一致文字。如果找到了,储存下来。一致的部分可以从

  Match方法获得的阵列中找到。

  x|y x和y的任意一方相同都会被认为一致。例:"(z|f)ood"和"zood","food"都一致。

  {n} n是0以上的整数。与其前的文字n次相同的话,两者一致。例:"o{2}"和"Bob"中的"o"不一

  致,与"foooood"中的前两个"o"一致。

  {n,} n是0以上的整数。与其之前的文字至少n次相同才一致。

  {n,m} 两者整数。n至m范围的次数一致。

  [xyz] 与中括号中的文字任意一个相同都被认为一致。

  [^xyz] 与上面的相反。

  [a-z] 文字的范围,从"a"到"z"的文字都被认为一致。

  [^a-z] 与上面的相反。

  /b 表示单词的末尾。例:"er/b"和"never"的"er"一致,但和"verb"的"er"不一致。

  /B 表示非单词的末尾。

  /d 表示数字。

  /D 表示非数字。

  /s 表示空格。

  /S 表示非空格。

  /w 表示所有字母数字。

  /W 表示非所有字母数字。

  i   (忽略大小写)

  g   (全文查找出现的所有   pattern)

  gi   (全文查找、忽略大小写)

  /num num应该被赋予一个正数。与已经储存的部分比较。例:"(.)/1"和任意的两个连续的相同

  文字一致。

  二 如何定义一句正文:

  方法一:直接写

  var s=/正则表达式/i或g或ig

  方法二:建立对象实例:

  var s=new RegExp(正则表达式,i或g或ig)

  三 与正则表达式有关的方法:

  1 exec方法

  描述: 在制定的文字行内进行搜索。

  结构: 正则表达式.exec(字符串)。

  解说: 检索的返回:

  null 没有检索到;

  一致的结果 检索到后;

  例:

  代码片段如下:

  <script>

  var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'

  var r=new RegExp('g','i');

  var a=r.exec(s);

  alert(a);

  </script>

  2 compile方法:

  描述: 修改正则表现的内部形式。

  结构: 正则表达.compile('正文','g或i或ig')。

  解说: 没什么好说的。

  例:

  代码片段如下:

  <script>

  var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'

  var r=new RegExp('[A-Z]','g');

  var a=s.match(r);

  alert(a);

  r.compile('[a-z]','g');

  var a=s.match(r);

  alert(a);

  </script>

  3 test方法:

  描述: 顾名思义,做测验。

  结构: 正则表达.test(字符串)。

  解说: 返回:

  false 没找到;

  true 找到了;

  例:

  代码片段如下:

  <script>

  var re=/re/g;

  var msg='return';

  var msg1='goon';

  alert(re.test(msg));

  alert(re.test(msg1));

  </script>

  4 replace方法:

  描述: 寻找一致的并置换他。

  结构: 字符串.replace(正则表达,替换字符串)。

  解说: 与字符串不变化,返回其副本。

  例:

  代码片段如下:

  <script>

  var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp'

  var r=new RegExp('[A-Z]','g');

  var a=s.replace(/[a-z]/g,'A');

  alert(a);

  </script>

  5 match方法:

  描述: 实行检索。

  结构: 字符串.match(正则表达)。

  解说: 返回数列。

  例:

  代码片段如下:

  <script>

  var re=/re/g;

  var msg='rererere';

  var msg1='goon';

  alert(msg.match(re));

  alert(msg1.match(re));

  </script>

  6 split方法:

  描述: 分割字符串。

  结构: 字符串.split(正则表达)。

  解说: 返回数列。

  例:

  代码片段如下:

  <script>

  var s="hello this good world";

  var p=//s/g;

  var a=s.split(p);

  alert(a);

  </script>

  7 search方法:

  描述: 返回一致的字符串的位置。(这比indexOf可用途广多了!)

  结构: 字符串.search(正则表达)。

  解说: 返回

  正整数 如果找到了

  -1 如果没找到

  例:

  代码片段如下:

  <script>

  var s="hello this good world";

  var p=/good/g;

  var a=s.search(p);

  alert(a);

  </script>

  把replace的方法的例子改一下:

  代码片段如下:

  <script>

  var s="hellOSCF";

  var r=new RegExp("[A-Z]","g");

  s=s.replace(r,"a");

  alert(s)

  </script>

  最后是他的各种属性

  1 lastIndex属性:

  描述: 设定检索开始的位置,可以得到其值

  结构: 正则表达.lastIndex(=值).

  解说:

  当lastIndex大于检索文字长度的时候,如果用test,exec方法执行的话,执行失败,

  lastIndex属性被设定为0.

  当lastIndex等于检索文字长度的时候,如果表达式正文是空的话,一致.其他场合,

  执行失败,重设为0.

  上记以外的情况,lastIndex会被设定为最后一致的文字列的位置指针.

  2 source属性

  描述: 返回正则表达的正文

  结构: 正则表达.source

  例:

  代码片段如下:

  <script>

  var s=/[a-z]{3}/W/s/g;

  var s1=new RegExp("[a-z]{3}/W","g");

  alert(s.source);

  alert(s1.source);

  </script>

  下面我将几个处理字符函数写出来:

  1 严禁数字

  代码片段如下:

  function check(msg){

  var exe=//d/g;

  if(exe.test(msg))return(0);

  else return(1)

  }

  2 只准字母

  代码片段如下:

  function check(msg){

  var exe=//W/g;

  if(exe.test(msg))return(0);

  else return(1);

  }

  3 严禁代码

  代码片段如下:

  function check(msg){

  var exe=/<(/w|/W)*>/g;

  if(exe.test(msg))return(0);

  else return(1);