我有字符串,基于该字符串的结束字符我需要检查一个条件。我已设法编写以下脚本,但它没有按照我的意图。
//var receivers_type = "d2845a48f91b29f9d0a6e96858f05d85xing";
var receivers_type = "d21fca8635940e97d0f8e132d806cedaxingpage";
if (/.*xing/.test(receivers_type)) {
console.log('xing profile');
flag = 1;
}
if (/.*xingpage/.test(receivers_type)) {
console.log('xing page');
flag = 0;
}
当receivers_type = "d2845a48f91b29f9d0a6e96858f05d85xing"
条件正常工作时它只会进入第一个if循环。但是当receivers_type = "d21fca8635940e97d0f8e132d806cedaxingpage"
它进入两个案件时。你能帮我解决这个问题。
答案 0 :(得分:3)
您不需要.*
选择器,因此您应该使用以下正则表达式
/xing$/ <-- the character $ means that the xing must be at the end of the string
所以你的代码将是:
//var receivers_type = "d2845a48f91b29f9d0a6e96858f05d85xing";
var receivers_type = "d21fca8635940e97d0f8e132d806cedaxingpage";
if (/xing$/.test(receivers_type)) {
console.log('xing profile');
flag = 1;
}
if (/xingpage$/.test(receivers_type)) {
console.log('xing page');
flag = 0;
}
答案 1 :(得分:1)
您需要匹配正则表达式中字符串的结尾。
你可以使用&#34;字符串锚点&#34;结尾,这是一个美元字符。
var receivers_type = "d21fca8635940e97d0f8e132d806cedaxingpage";
if (/.*xing$/.test(receivers_type)) {
console.log('xing profile');
}
if (/.*xingpage$/.test(receivers_type)) {
console.log('xing page');
}
您可以在此处阅读更多内容:http://www.regular-expressions.info/anchors.html
答案 2 :(得分:0)
我建议使用以下表达式:
/xingpage$/
所以你会:
if (/xingpage$/.test(receivers_type)) {
console.log('xing page');
flag = 0;
}
答案 3 :(得分:0)
在Javascript中使用匹配并更改正则表达式:
if(recievers_type.match(/(xingpage)$/)