正则表达式,用于在字符串末尾查找单词

时间:2014-12-16 12:15:51

标签: javascript regex

我有字符串,基于该字符串的结束字符我需要检查一个条件。我已设法编写以下脚本,但它没有按照我的意图。

//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"它进入两个案件时。你能帮我解决这个问题。

4 个答案:

答案 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)$/)