我有一个像这样生成的字符串
"$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas$l3$ppySelected"
我想利用javascript正则表达式在" [letter l] [digit]"的最后一次出现之前找出字符串。所以我的结果应该是
$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas
因为我对正则表达非常新,所以任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
使用前瞻来匹配$l
上次出现之后所有字符,然后是数字。
> "$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas$l3$ppySelected".match(/.+(?=\$l\d)/g);
[ '$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas' ]
如果\$
之前包含任何字符,请放置一个点而不是l<digit>
,
> "$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas$l3$ppySelected".match(/.+(?=.l\d)/g);
[ '$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas' ]
答案 1 :(得分:0)
试试:
var input = "$PmyCase$l2$pClaimData$pTriageDetails$pDamagedAreas$l3$ppySelected";
var output = input.match(/^(.*)\$l\d/)[1];
如果未找到匹配项,则output
将为undefined
。