【JavaScript基础学习】关于正则表达式的完整内容

时间:2022-04-07 04:55:19

w3cJavaScript RegExp对象  这个如果第一次看的话应该会很莫名其妙,但可以看一遍留个印象。

正则表达式30分钟入门教程 这个教程非常完整,走一遍大概能够明白怎么回事了。

正则表达式在线测试工具  这个非常好用,它显示的是匹配结果,而且添加了替换功能(replace)

正则表达式的基本概念:

  它主要用于对字符串进行模式匹配。简单来说,你要对字符串进行判断,长度多少、是否全部为数字、是否全部为字母等等判断,这些判断本来要用for循环进行遍历然后进行判断,正则表达式相当于将判断放在了表达式中。

我们可以这么来进行假设,有一个需要被测试的字符串a,现在我们要来测试这个字符串是否是我们需要的字符串,例如我们需要这个字符串是"hello",现在我们将使用字符串var b = "hello"来检验字符串a,这个很简单,就是if(b==a){正确}else{错误},那么正则表达式就是/hello/.test(a);

  我们打开浏览器的控制台来检验一下。回车输出true。test是RegExp对象方法,用于检索字符串中的指定值返回true或者false。

/hello/.test("hello");

  现在我们知道了,正则表达式一一去匹配的关系,如果你只需要hello上面的写法是不够的

/hello/.test("hello");
  true
/hello/.test("hellodfv");
  true
/hello/.test("helsslodfv");
  false

  如果我们只需要hello这么一个字符串呢?那么我们需要进行定位,就是以h开始,以o结尾,这里引入量词的概念,^n,以n开始,n$,以n结尾

/^hello$/.test("helload");
  false

  现在我们应该能够很简单的理解正则表达式是干嘛的了,现在引入的概念是判断的概念,就是不可能把每个可能的字符串都列出来,所以需要元字符将字符串缩小。

  这里先要引入一个方括号的概念,用我们可以把它理解为一个字符[]所在位对应,这里面就是一个判断表达式,例如[abc]意思是对应字符串对应的一个字符位上面可以是a也可以是b也可以是c,这样的话非常好理解是吗。把上面的例子更改一下就可以了。那么这个有什么用呢?为什么要多此一举?

/^[h][e][l][l][o]$/.test("hello");

  假设对应字符位上字符并不确定,那么需要进行判断,例如需要判断是否是电话号码,电话号码组成为09-29387487

/^[0-9][0-9][-][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/.test(string);

  那么是否还能够简单一些呢?这里引入元字符的概念,\d表示查找数字

/^\d\d-\d\d\d\d\d\d\d\d/.test(String)

  再再简单一些,将他们合起来,很显然,\d进行了重复出现

/^\d{2}-\d{8}/.test("string");

  这里可以引入花括号的概念,用于判断前面的字符集是否重复执行,{n}有n个元素,{n,m}有n到m个元素,{n,}大于n个元素。这是关于量词的概念。

现在我们可以重新去看w3c里面的内容了,这样就非常简单了。