本篇文章是对js中正则表达式的使用进行了详细的分析介绍
需要的朋友可以参考下
js中的正则表达式比起C#中的正则表达式要弱很多但基本够用了
定义正则表达式
关于验证的三个这则表达式方法
正则表达式式的转义字符
定义正则表达式
在js中定义正则表达式很简单有两种方式一种是通过构造函数一种是通过//也就是两个斜槓
例如
复制代码 代码如下:
var re =new RegExp("?(w{
}=w{
}&){
}w{
}=w{
}");
使用构造函数定义正则表达式注意大小写负责就会不起作用由于构造函数的参数是一个字符串也可以是两个斜槓的方式定义遇到一些特殊字符就需要使用进行转义
通过双斜槓的方式定义同样的正则表达式
复制代码 代码如下:
var re =/?(w{
}=w{
}&){
}w{
}=w{
}/;
复制代码 代码如下:
var re =new RegExp( /^?(w{
}=w{
}&){
}w{
}=w{
}/);
可以和构造函数达到同样的效果但仔细分析发现通过构造函数需要更多的转义字符
关于验证的三个正则表达式方法
使用正则表达式的主要有字符串的方法match正则表达式的方法exectest
正则表达式方法test测试给定的字符串是否满足正则表达式返回值是bool类型的只有真和假如果只是单纯的判断不需要其他的处理可以使用尤其是验证时
复制代码 代码如下:
function test(){
var text="index
aspx?test=
&ww=
&www=
";//
var re =/?(w{
}=w{
}&){
}w{
}=w{
}/;
// var re =new RegExp("?(w{
}=w{
}&){
}w{
}=w{
}");
var result= re
test(text);
if(result)
{
alert("ok");
}else
{
alert("err");
}
}
正则表达式方法exec测试给定的字符串是否满足正则表达式返回匹配到的字符串如果没有匹配的则返回null和test基本一致如果需要获取匹配的各个子字符串可以使用下标的方式把上边的test的例子可以改写如下
复制代码 代码如下:
function test(){
var text="index
aspx?test=
&ww=
&www=
";
var re = /?(w{
}=w{
}&){
}w{
}=w{
}/;
// var re =new RegExp( "?(w{
}=w{
}&){
}w{
}=w{
}");
var result= re
exec(text);
if(result)
{
alert("ok");
alert(result); // 是?test=
&ww=
&www=
ww=
&
alert(result[
]+"
");//是?test=
&ww=
&www=
alert(result[
]+"
");//是ww=
&
}else
{
alert("err");
}
}
match其实是字符串的方法但参数确是一个正则表达式把上边的例子改写后如下
复制代码 代码如下:
function test(){
var text="index
aspx?test=
&ww=
";//
var re = /?(w{
}=w{
}&){
}w{
}=w{
}/;
// var re
= "(w{
}=w{
}&){
}w{
}=w{
}"
var result= text
match(re);
if(result)
{
alert(result);//?test=
&ww=
test=
&
alert(result[
]+"
");//?test=
&ww=
alert(result[
]+"
");//test=
&
}else
{
alert("err");
}
}
其实字符串类还有多个函数可以传递正则表达式splitsearchreplace等但这些方法已经不适合验证了
复制代码 代码如下:
function test(){
var text="index
aspx?test=
&ww=
";//
var re = /?(w{
}=w{
}&){
}w{
}=w{
}/;
// var re
= "(w{
}=w{
}&){
}w{
}=w{
}"
var result= text
split(re);
alert(result);
alert(result[
]+"
");
alert(result[
]+"
");
}
正则表达式式的转义字符
在正则表达式中会经常出现转义字符例如问号?在正则表达式中有特殊的含义如果需要匹配问号?就需要转义使用转义字符反斜槓
如下两个都是匹配问号开头的一段字符串
复制代码 代码如下:
function test(){
var text="?test=&ww=&www=";
var re = /^?(w{}=w{}&){}w{}=w{}/;// ?表示配置问号?
// var re =new RegExp( "^?(w{}=w{}&){}w{}=w{}");// ?表示配置问号?
var result= reexec(text);
if(result)
{
alert("ok");
alert(result);
alert(result[]+"");
alert(result[]+"");
}else
{
alert("err");
}
}