【问题标题】:Javascript:JSllint regular expression literal can be confuse with /= [duplicate]Javascript:JSllint 正则表达式文字可能与 /= [重复] 混淆
【发布时间】:2013-09-19 07:07:53
【问题描述】:

如果有“=”符号,我已经写了一些 javascript 来分割字符串

例如。 键=值 字符串="id=abc=xyz" 在上面的示例中,我必须根据“=”符号拆分字符串,并将它们存储到键值对中。在本例中,我将键存储为“id”,值存储为“abc=xyz”。为了拆分它,我添加了以下代码来存储价值。它工作正常。但我的 Jslint 说“正则表达式文字可能与 /= 混淆。

var value=string.split(/=(.+)/)[1];

任何指针。

【问题讨论】:

标签: javascript jslint


【解决方案1】:

我会说这只是 JSLint 过于严格而忽略了它。在您的代码中非常清楚您有一个 RegExp 文字,而不是一个 /= 运算符。

如果您觉得需要修复它,您可以使用 RegExp 构造函数而不是文字:

var value = string.split(new RegExp('=(.+)'))[1];

或者只是转义 = 字符:

var value = string.split(/\=(.+)/)[1];

【讨论】:

  • 感谢您的详细信息。但在 IE 中出现 javascript 错误。
  • @Raje -- IE 奇怪的正则表达式支持不再是真正的 JSLint 问题。您使用的是什么版本,什么问题?它看起来像IE8's regexp support is a little wonky。即使在 IE9 上,我也只能通过您的正则表达式和string = "this=little=piggy"; 获得一个返回值,但是,这不再是真正的 JSLint 问题了。出于跨浏览器的目的和权宜之计,这可能是您放弃正则表达式的地方。 value = string.substring(string.indexOf("=")+1);
猜你喜欢
  • 2012-10-28
  • 2018-06-01
  • 2020-12-05
  • 2023-03-08
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
  • 1970-01-01
相关资源
最近更新 更多