回顾一下JavaScript中的正则表达式

最近用到了一些正则表达式的操作,有点遗忘,在这里回顾一下。如有遗漏错误,请指正。

一 简介

    来看下JS文档中对正则表达式的介绍:

如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。

请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:

data1.dat

data2.dat

datax.dat

dataN.dat

如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名:

data.dat

data1.dat

data2.dat

data12.dat

datax.dat

dataXYZ.dat

尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。

二 常用场景

  • 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
  • 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
  • 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。

三 常用语法

位置:

    ^     开头

    $      结尾

次数:

    *     0或多个

    +    1或多个

    ?     01

   {n}    就是n

   {n,}    至少n

   {n,m}  最少n个,最多m

通配符:

    \d    任意数字

    \D    任意非数字

    \s     任意空白

    \S    任意非空白

    .      任意字符(除'\n'外)

组:

(正则)           匹配括号中正则表达式对应的结果,并暂存这个结果。

(?:正则)     匹配括号中正则表达式对应的结果,但不暂存这个结果。

\数字             使用第n个组匹配的结果

上述只是常用的,并不是全部。

四 创建方式

方式一:  var regex = new RegExp("正则表达式", "标志");

方式二:  var regex = /正则表达式/标志     

标志也叫模式,用指定正则表达式匹配的一些规则,如:

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

      i (忽略大小写)

      m (多行查找) 

五 常用方法

      test()

      replace()

六 举点例子

   1.假设用户名要满足:第一位是字母,只有数字与字母组成,6位。

     var name = "abc123";

     var reg = /^[a-z][a-z0-9]{5}$/i;

     reg.test(name); //    符合返回true ,否则返回false

   2. 












猜你喜欢

转载自blog.csdn.net/quge_name_harder/article/details/80910840
今日推荐