第一节:基本概念
#JavaScript#正则表达式已经成为各大编程语言的标准,只是在不同的语言中,所使用的方式有所不同,但基本上核心的功能都是一样的。
正则表达式的核心功能是建立一种匹配模式,这个匹配模式可以理解为模板,模子。
然后再拿具体的字符串来与这个模式进行匹配,如果匹配上,则表示符合要求,则进一步采用措施。
第二节:正则表达式特点
正则表达式是由字符串组成的。正则表达式只是一种搜索模式或匹配模式。对于具体的字符串,需要经过正则表达式的计算后,形成一个值来判断是否匹配上。正则表达式可简单,可复杂,需要根据语法定义模式。在各个编程语言中,也会推出一些与正则表达式相关的辅助操作,如替找操作等。第三节:正则表达式语法
在JavaScript中,对于正则表达式的定义,使用字面量表示法的基本语法如下:
/模式/修饰符
基本语法说明如下:
使用两个/来表示一个正则表达式匹配模式。第一个/后面跟匹配模式。例如:var patt = /Yido/i,Yido是一个简单的匹配模式,用于字符串的搜索。第二个/后面跟修饰符标志。这里的修饰符标志是i,表示不分区大小写进行匹配。
第四节:search()方法的使用
4.1. 基本含义
search()方法是字符串对象的方法,可与正则表达式对接,用于将当前字符串在正则表达式中搜索并匹配。
Search()方法返回的类型是一个整数值:
返回第一次匹配到的字符串的开始索引值,索引值是从0开始的。如果字符串没有在正则表达式中匹配到,则返回-1。4.2. 参数是正则表达式
当我们使用JavaScript定义一个字符串后,在字符串对象上可以使用search()方法,并且可以将正则表达式做为参数传入到该方法中。
Search()方法的使用正则表达式的代码如下:
<script type="text/javascript">//正则表达式var patt = /Yido/i;//字符串var str1 = "Hello Yido Online Edu.";//返回查找的索引位置var index = str1.search(patt);document.write(index);</script>
在此代码中,/Yido/i是一个简单的正则表达式,表示在字符串中搜索是否存在Yido,i表示不区分大小写,如果匹配到了,则返回相应的索引值,如果没有匹配到,则返回-1。
在Visual Studio 中的完整代码如下:
图1
现在运行一下图1的代码,看是否能匹配上Yido,返回的整数是多少:
图2
从运行的结果上看,返回的结果是6,表示匹配到了,字符串匹配上的起始位置是6。
再来看一个例子,JavaScript代码如下:
<script type="text/javascript">var x = /[0-9]/i;var s1 = "Hello World 8";var index = s1.search(x);document.write(index);</script>
在此JS代码中,正则表达式中使用了[0-9],表示0到9之间的整数。可匹配0-9之间的整数。
在字符串s1中,有一个整数值8,现在这段代码的含义是在s1字符串中匹配0-9之间的整数,正好8在0-9之间,所以是可以匹配上的。运行结果如下:
图3
在字符串的索引值为12的位置匹配成功了。
4.3. 参数是字符串
对于search方法,还可以使用字符串作为参数。实际上是将字符串参数转换成了一个兼容的正则表达式。
JavaScript代码如下:
<script type="text/javascript">//正则表达式var patt = "Yido";//字符串var str1 = "Hello Yido Online Edu.";//返回查找的索引位置var index = str1.search(patt);document.write(index);</script>
在此JS代码中,将定义正则表达式的两个/去掉了,变成了一个普通的字符串,但是运行出来的结果,还是6,表示匹配成功了,这说明还是将patt字符串转换为了正则表达式来匹配。