我有以下代码。假设变量u1可以是以下任意一种:
NBSLoan|Accept|PPI+No|60MonthsNBSLoan|Refer|PPI+No|60MonthsDeBSLoan|Accept|PPI+No|60Months
另外,最后一部分60Months总是会有所不同,我可以使用以下JavaScript进行模式匹配吗?我是否需要为管道|符号添加特殊字符?还是在我尝试仅匹配较长字符串的第一部分时不起作用?

<script type="text/javascript">
var u1 = 'NBSLoan|Accept|PPI+No|60Months';

var n_accept = /^NBSLoan|Accept$/;
var n_refer = /^NBSLoan|Refer$/;
var d_accept = /^DeBSLoan|Accept$/;

if (u1.match(n_accept)) {
var pvnPixel = '<img src="https://url1.com"/>';
document.write(pvnPixel);
}
else if (u1.match(n_refer)) {
var pvnPixel2 = '<img src="url2.com"/>';
document.write(pvnPixel2);
}
else if (u1.match(d_accept)) {
var pvnPixel3 = '<img src="url3.com"/>';
document.write(pvnPixel3);
}
</script>

最佳答案



都。

  • 您需要使用反斜杠对管道符号进行转义以匹配文字管道字符。没有反斜杠意味着alternation
  • 您还需要删除行末 anchor 。

  • 试试这个正则表达式:
    /^NBSLoan\|Accept/
    

    关于javascript - 我在这里正确使用模式匹配吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10735794/

    10-10 00:14
    查看更多