您的位置:首页 > Web前端 > JavaScript

js正则匹配

2015-09-29 00:00 381 查看
摘要: js正则匹配

form input输入框,截取url等很多地方需要我们使用正则表达式。

(1).RegExp类型

js通过RegExp类型来支持正则表达式。var expression = / pattern / flags;

其中的模式(pattern) 部分可以是任何简单或复杂的正则表达式。每个正则表达式都可带一个或者多个标志(flages),用以表示正则表达式的行为。

正则表达式的匹配模式支持下列3个标志。

g : 表示全局(global)模式,即模式将被应用于所有字符串,在发现第一个匹配项后不会立即停止。

i : 表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。

m: 表示多行(multiline)模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项。

(2).RegExp实例方法

RegExp 对象主要方法是exec(),该方法接受一个参数,就是需要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者没有匹配返回null。其中包含两个额外属性:index 和 input。其中,index表示匹配项在字符串中的位置,而input表示应用正则表达式的字符串。

var text = "0722-6661023";
var p=/\d{3,4}-\d{7}/g;
var matches = p.exec(text);
console.log(matches);
/**
output

0    "0722-6661023"
index    0
input    "0722-6661023"
*/

.test()是第二个方法,它接受一个字符串参数。在模式与该参数匹配的时候返回true; 否在,返回 false。在只想知道目标字符串与某个模式是否匹配,但不需要知道其文本内容的情况下,使用找个方法非常方便。

function vali_tel(){
var text = "0722-6661023";
var p=/\d{3,4}-\d{7}/;
return p.test(text);
}

if(vali_tel()){
alert('ok');
}else{
alert('fail');
}

相关例子:

在点击添加按钮的时候。动态添加input输入框。需要去掉之前的value属性。

var a = '<div class="ops">'+$(this).parent().prev().children("div.ops:eq(0)").html()+'</div>';
er = /value="[0-9a-zA-Z]*"/g;
a = a.replace(er, '');
console.log(a);//return false;
$(this).parent().prev().append(a);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: