html js脚本限制 正则表达式,js正则表达式的使用详解

本文介绍了JavaScript正则表达式的基础定义,包括使用构造函数和//方式,并重点讲解了验证的三种方法(test, exec, match),以及转义字符的用法。通过实例展示了如何使用正则表达式进行URL参数的验证。
摘要由CSDN通过智能技术生成

js中的正则表达式比起C#中的正则表达式要弱很多,但基本够用了1定义正则表达式

2关于验证的三个这则表达式方法

3正则表达式式的转义字符1定义正则表达式在js中定义正则表达式很简单,有两种方式,一种是通过构造函数,一种是通过//,也就是两个斜杠。

例如

var   re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");

使用构造函数定义正则表达式,注意大小写,负责就会不起作用。由于构造函数的参数是一个字符串,也可以是两个斜杠的方式定义,遇到一些特殊字符就需要使用\进行转义

通过双斜杠的方式定义同样的正则表达式

var   re =/\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;

var re =new RegExp( /^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/);

可以和构造函数达到同样的效果,但仔细分析,发现,通过构造函数需要更多的转义字符\

2关于验证的三个正则表达式方法

使用正则表达式的主要有字符串的方法match,正则表达式的方法exec,test

正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假,如果只是单纯的判断,不需要其他的处理,可以使用尤其是验证时。

function test(){

var text="index.aspx?test=1&ww=2&www=3"; //

var   re =/\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;

//  var   re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");

var result=  re.test(text);

if(result)

{

alert("ok");

}else

{

alert("err");

}

}

正则表达式方法exec测试给定的字符串是否满足正则表达式,返回匹配到的字符串,如果没有匹配的则返回null,和test基本一致,如果需要获取匹配的各个子字符串,可以使用下标的方式,把上边的test的例子可以改写如下

function test(){

var text="index.aspx?test=1&ww=2&www=3";

var   re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;

//  var   re =new RegExp( "\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");

var result=  re.exec(text);

if(result)

{

alert("ok");

alert(result);  // 是?test=1&ww=2&www=3,ww=2&

alert(result[0]+",0");//是?test=1&ww=2&www=3

alert(result[1]+",1");//是ww=2&

}else

{

alert("err");

}

}

match其实是字符串的方法,但参数确是一个正则表达式,把上边的例子改写后,如下

function test(){

var text="index.aspx?test=1&ww=234"; //

var   re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;

//   var   re2 = "(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}"

var result= text.match(re);

if(result)

{

alert(result);//?test=1&ww=234,test=1&

alert(result[0]+",0");//?test=1&ww=234

alert(result[1]+",1");//test=1&

}else

{

alert("err");

}

}

其实字符串类还有多个函数可以传递正则表达式,split,search,replace等但这些方法已经不适合验证了。

function test(){

var text="index.aspx?test=1&ww=234"; //

var   re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;

//   var   re2 = "(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}"

var result= text.split(re);

alert(result);

alert(result[0]+",0");

alert(result[1]+",1");

}

3正则表达式式的转义字符在正则表达式中会经常出现转义字符,例如问号?在正则表达式中有特殊的含义,如果需要匹配问号?就需要转义,使用转义字符反斜杠\

如下两个都是匹配问号开头的一段字符串

function test(){

var text="?test=1&ww=2&www=3";

var   re = /^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;//  \?表示配置问号?

//  var   re =new RegExp( "^\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");//  \\?表示配置问号?

var result=  re.exec(text);

if(result)

{

alert("ok");

alert(result);

alert(result[0]+",0");

alert(result[1]+",1");

}else

{

alert("err");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值