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");
}
}
js,正则表达式
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
- 群星《奥运加油热歌精选》[FLAC/分轨][455.15MB]
- 群星《赤热 电视剧音乐原声》[320K/MP3][80.76MB]
- 群星《赤热 电视剧音乐原声》[320K/MP3][427.21MB]
- 周华健.1996-爱的光【滚石】【WAV+CUE】
- 杨宗宪.1996-想啥人怨啥人等啥人【有容唱片】【WAV+CUE】
- 郑秀文.2024-Best.Concert.Live【华纳】【FLAC分轨】
- 《Pax Dei》配置要求一览
- 《过山车之心2》存档位置介绍
- 《三国志8 REMAKE》评测:自定义的三国演义
- 群星《少年白马醉春风 网剧OST原声专辑》[320K/MP3][117.05MB]
- 群星《少年白马醉春风 网剧OST原声专辑》[FLAC/分轨][621.04MB]
- 《魏佳艺5CD合集》[WAV分轨][3.8G]
- CSGO职业选手donk怎么样 2024最新donk个人资料介绍
- CSGO职业选手NiKo怎么样 2024最新Niko个人资料介绍
- 剑网3丝路风语PVE焚影怎么打 丝路风语PVE焚影圣诀手法配装攻略