JavaScript中可以使用正则表达式么?如果能,该如何使用呢?
首先肯定的是JavaScript中是可以使用正则表达式的。
下面我就借鉴秒秒学上的内容,简单说下。
在没有了解正则表达式之前,是很难理解它的强大功能的,我们先来看一个在JavaScript中使用正则表达式的语句。
//创建正则表达式,这和声明字符串很相似,但hello不是放在双引号中,而是在双斜杠中’//’。
var myRE = /hello/;
示例中创建正则表达式的代码其实是简写,完整写法为:var myRE = new RegExp(“hello”);
/*
*使用正则表达式在字符串中查找信息。
*下面代码使用test方法匹配字符串,这里在myString中匹配myRE中的”hello”字符串,
*若myString中能匹配到test方法,则返回true,否则返回false。匹配过程是大小写敏
*感的。
*/
var myString = “Does this sentence have the word hello in it?”
if( myRE.test(myString) ) {
alert(“Yes”);
}
test方法只返回true和false,而使用search方法能返回”hello”在myString中第一次出现的下标。
介绍了JavaScript中使用正则表达式的用法后,下面我们来说下正则表达式本身。
在刚刚的示例中,我们用正则表达式匹配的是字符串hello。但很多时候需要匹配的字符串是比较复杂的,如电子邮箱的格式。这时我们就要使用由普通字符以及特殊字符组成的文字模式。特殊字符也许对不了解正则表达式的人来说就是一串乱七八糟的字符,但其实就是因为有了这些乱糟糟的字符,才能使正则表达式好些的强大。下面我们来了解下正则表达式中的特殊字符:
通过普通字符以及特殊字符可以组成复杂的正则表达式。如下是一个逐渐复杂的示例:
其实上面的正则表达式并不算复杂。很多常用的正则表达式可以在网上找到,不用我们自己编写,如:
匹配电子邮箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
匹配URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
复杂正则表达式的编写并不简单,题主只要先大概的了解即可,希望能帮助你入门,推荐你去一个不错的自学网站 秒秒学上过一遍基础知识。
var str = '12345';
var result;
result = reg.test(str); //测试:str 是否符合 正则 ^\d{5}$,返回true 或 false
//result = reg.exec(str); //查找:str 中否符合 正则 ^\d{5}$ 的字符,找不到返回 null
</script>