我试图匹配具有此格式的行。编写静态regEx很好,但我需要使用2个变量来动态创建正则表达式。
我似乎无法得到如何正确地逃脱前向支架我试图逃避它们,而不是逃避它们甚至双重逃避它们(只是为了它的哎呀)但是fireBug显示实际的regEx被创建同样没有母体我怎么样做它并不符合我的意见。
匹配的行看起来像这样: 9.SSRDOCSWSHK1 ///// 23NOV96 / M // YEUNG / WINSTON / JEREMY-5.1
我尝试了什么:
var regString ='\\d{1,2}.SSRDOCS[0-9A-Z]{2}HK1[/]{5}\\d\\d[A-Z]{3}\\d\\d/[MF]//'+curGstNme+'([/A-Z]+)?-'+pax.slice(0,1)+'\.'
var namedGdocRegEx = new RegExp(regString,"g");
FireBug gives RegExp /\d{1,2}.SSRDOCS[0-9A-Z]{2}HK1[\/]{5}\d\d[A-Z]{3}\d\d\/[MF]\/\/CASTANEDA\/HAZEL([\/A-Z]+)?-1./g
---------------------------
var regString ='\\d{1,2}.SSRDOCS[0-9A-Z]{2}HK1[\/]{5}\\d\\d[A-Z]{3}\\d\\d\/[MF]\/\/'+curGstNme+'([\/A-Z]+)?-'+pax.slice(0,1)+'\.'
var namedGdocRegEx = new RegExp(regString,"g");
FireBug gives RegExp /\d{1,2}.SSRDOCS[0-9A-Z]{2}HK1[\/]{5}\d\d[A-Z]{3}\d\d\/[MF]\/\/CASTANEDA\/HAZEL([\/A-Z]+)?-1./g
---------------------------
var regString ='\\d{1,2}.SSRDOCS[0-9A-Z]{2}HK1[\\/]{5}\\d\\d[A-Z]{3}\\d\\d\\/[MF]\\/\\/'+curGstNme+'([\\/A-Z]+)?-'+pax.slice(0,1)+'\.'
var namedGdocRegEx = new RegExp(regString,"g");
FireBug gives RegExp /\d{1,2}.SSRDOCS[0-9A-Z]{2}HK1[\/]{5}\d\d[A-Z]{3}\d\d\/[MF]\/\/CASTANEDA\/HAZEL([\/A-Z]+)?-1./g
答案 0 :(得分:1)
在正则表达式中,你需要转义DOT,因为DOT意味着任何角色。
使用此正则表达式:
regString ='\\d{1,2}\\.SSRDOCS[0-9A-Z]{2}HK1/{5}\\d\\d[A-Z]{3}\\d\\d/[MF]//'+ curGstNme + '([/A-Z]+)?-' + pax.slice(0,1) + '\\.';
答案 1 :(得分:0)
实际上问题出在其他地方。显然,fireBug只显示创建的正则表达式(在" watch"面板中),可以看到转义的框格。这让我觉得正则表达式没有被正确创建。
答案 2 :(得分:0)
你的正则表达式可以这样减少:
var regString ='\\d{1,2}\\.SSRDOCS[0-9A-Z]{2}HK1/{5}\\d{2}[A-Z]{3}\\d{2}/[MF]//'+curGstNme+'([/A-Z]+)?-'+pax.slice(0,1)+'\.'
我做了什么改变?
\\d\\d
可以使用\d{2}
高效替换。.
已替换为\\.
,以便完全匹配。[/]{5}
已替换为/{5}
这在视觉上给你: