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