网站地图    收藏   

主页 > 前端 > javascript >

Javascript 正则表达式使用变量

来源:自学PHP网    时间:2023-11-07 09:55 作者: 阅读:

[导读] 文章来给大家介绍在Javascript 正则表达式使用变量时一些问题与解决方法,主要讲到的替换与RegExp两种方式...


例1,replace带有变量


replace函数可以使用正则表达式来匹配字符串实现替换。

今天遇到的问题是正则表达式出现了变量,以今天的实际情况为例:


/(^'+arr2[i]+'|)|(|'+arr2[i]+'$)/
arr2[i]为数组元素,是变量
str=str.replace(/(^'+arr2[i]+'|)|(|'+arr2[i]+'$)/,'');


使用这种方式无法替换成功,解决办法:


var reg=eval_r('/(^'+arr2[i]+'\|)|(\|'+arr2[i]+'$)/');
str=str.replace(reg,'');


如果是直接变量我们单独替换可以如下操作


var match_str = 'bitch';
var regex = "/," + match_str + ",/ig";
var target_str = ",abcde,bitch,fghij,";
var val = target_str.replace(eval(regex),",");
alert(val);


val应该是:,abcde,fghij,


例2,RegExp模式带有变量


function checkBeginWithChar(str,minlen,maxlen,msg)
{
Minlen = minlen-1;
Maxlen = maxlen-1;
var re=new RegExp("^[a-zA-Z]{1}([a-zA-Z0-9]){"+minlen+","+maxlen+"}$");
if (!re.exec(str)) {
    alert(msg);
    return false;      }
return true;
}


上面是一个JavaScript函数,可以这样调用:


If(!checkBeginWithChar(“a123df”,6,12,”你输入的PIN码必须以字母开头并且字符数在6—12之间!”))
       return false;

这是使用变量的情况,下面这个函数是没有使用变量的情况。


function checkBeginWithChar(str,msg)
{   
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]){5,50}$/;
     if (!patrn.exec(str)) {
         alert(msg);
         return false;
     }
     return true;
}


注意:没有变量的时候,正则表达式可以不写成字符串的形式两边分别要有反斜杠;如果使用变量就要用new RegExp()并且里面的字符串没有那两个反斜杠。



自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论