【问题标题】:How to check if a string contains something at the end如何检查字符串末尾是否包含某些内容
【发布时间】:2013-03-27 20:09:18
【问题描述】:

我正在写一些条件来完成不同的任务。例如,如果字符串等于 案例1,“/Livestock”,然后打印“task one”。 案例2,“/Livastock/”+最后的其他内容,然后打印“任务二”。 否则,打印“任务三”。 似乎我们使用 .test() 来检查正则表达式,但是如何将其放入 switch 语句中?

【问题讨论】:

  • 改用 if/else if/else 结构...
  • 正则表达式和 switch 语句不能真正一起工作。

标签: javascript regex


【解决方案1】:

您没有清楚地描述您的问题。所以我假设你的字符串 (var str) 在

case1: "task one", str=="Livestock"
case2: "task two", str starts with "Livestock" and there are something after it.
case3: "task three", not in above two cases

那么你可以:

var flag=str=="Livestock"?1:str.search(/^Livestock/)==0?2:3;

现在标志有 1, or 2 or 3 以便您可以在 switch 语句中检查它。

如果我对您的问题的理解有误,请发表评论,看看我是否可以修复答案。

【讨论】:

  • 是的,我就是这个意思。我使用 if 语句让它工作。非常感谢。
  • 对于第二部分,/^Livestock/.test(str) 稍快/便宜。
【解决方案2】:

$ 表示字符串的结尾(或行尾,如果您在 RegEx 中使用特定开关)。

var ends_w_livestock = /\/Livestock\/?$/,
    continues_after_livestock = /\/Livestock\/[^?#]+/;

现在,第一个允许测试以“/Livestock”或“/Livestock/”结尾的网址。
第二个允许测试包含“/Livestock/”但之后至少还有一个字符的 URL,这不是“?”或“#”。

然后,您将使用 if 或三元赋值或任何您想做的事情来测试每一个。

【讨论】:

  • 像冠军一样工作。 Thx 堆。
猜你喜欢
  • 2014-11-22
  • 2011-03-31
  • 2016-08-09
  • 2018-05-01
  • 2014-05-07
  • 2019-12-29
  • 2014-09-25
  • 2015-03-15
相关资源
最近更新 更多