【问题标题】:Using regular expressions in javascript在 javascript 中使用正则表达式
【发布时间】:2017-03-20 15:20:30
【问题描述】:

我正在尝试按以下方式操作字符串:
myStr = 'str1/str2/str3a // str3b'

我想得到由分隔符'%s/%s' 分隔的最后一个值,在本例中为'str3a // str3b'
我尝试使用字符串拆分,但它基于 '//' 拆分并返回 str3b。有没有办法使用正则表达式解决这个问题?

谢谢

【问题讨论】:

  • %s/%s 分隔的值怎么会变成 str3a // str3b ?你有一个双 / 不是 %s/%s。

标签: javascript regex


【解决方案1】:

尝试使用正则表达式(?:^|[^/])\/(?!\/)((?:[^/]|\/{2,})*)$:

var strings = [
  'str1/str2/str3a // str3b',
  'str1/str2/str3',
  'str1/str2'
]

strings.forEach(function(string) {

  var match = /(?:^|[^/])\/(?!\/)((?:[^/]|\/{2,})*)$/.exec(string)[1]

  console.log(string, '=>', match)

})

【讨论】:

  • 但是当字符串输入只是'str1/str2'时这不起作用。我仍然想返回 str2
  • 刚刚更新了答案。现在应该可以用于您的其他用途了。
  • 嗨,我正在尝试获取以下字符串。 myStr = 'str1/str2/str3',在这种情况下,我将返回最后一个带有分隔符 '/' 的字符串(结果 = str3)。或者 myStr = 'st1/str2/str3 // str4' (结果将是 'str3 // str4' - 最后一个字符串后跟 '/' 分隔)。上述解决方案不检查这种情况。 strsplit 不够聪明,无法检测到这一点。
  • 我想我现在明白了。我更新了我的答案并确认它适用于您上面提到的所有三个字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多