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);



转载于:https://my.oschina.net/u/2280651/blog/512668

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值