主页 > 前端 > 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