匹配一个以“|”开头,加上id的字符串,为了避免要找完整的“|1”却误匹配了“|11”中的“|1”所以用了零宽断言即:(?=表达式),并且为了避免末尾的字符串没办法匹配零宽的“|”字母所以加上了匹配字母串末尾的“$”,理论上$也应该是零宽的但是本身就是空白的就不了。
因为要匹配特殊字符“|”,所以用了“\”,要不然就变成分支的语句了,也就是|前或者|后面的语句有一个匹配都算成功。因为要加上参数所以使用了eval语句来执行给patt赋值建立正则表达式,所以“\”也要转义一下就变成两个\了。
var str = “|11|2|1|3″;
var str_patt=”var patt =/\\|”+id+”(?=\\|)|\\|”+id+”$/;”


