正常我们判断一个字符串是否为指定格式时会想到使用正则表达式来匹配
var patt = /^......$/;使用patt的test方法,传入需要测试的字符串。但是当正则表达式中需要使用变量时,这种方法就不顶用了,这就得用 RegExp对象传入正则表达式格式的字符串生成正则对象。(ps:字符串中的元字符必须要转义!!!)
var shopSiteUrl = "http://122.152.192.178/";
var goodReg = new RegExp('^'+shopSiteUrl.replace(/\./g,'\\.')+'goodDetails\\.html\\?goodsId=\\d\+$');
alert(goodReg.test('http://122.152.192.178/goodDetails.html?goodsId=22719077638209536'));//=true
shopSiteUrl作为变量传入点号和问号和\d都属于元字符,需要进行转义,但是要传入RegExp仅仅转义还不够,因为它是字符串还需要对\进行转义,就这个转义的事情耗费了一两个小时才发现问题。