【问题标题】:Why does my regular expression work in RegexPal, but not when I run my Javascript?为什么我的正则表达式在 RegexPal 中有效,但在我运行 Javascript 时无效?
【发布时间】:2012-05-02 09:19:33
【问题描述】:

我在 Firefox 中运行一些似乎不遵循正则表达式规则的 JavaScript 代码。我正在尝试拆分一个坐标字符串,其中包含一些时髦的空格,如下所示:

-117.2967917,35.5189858 -117.2966678,35.5189526

-117.296678,35.5187657 -117.2968027,35.5187999

-117.2967917,35.5189858 

我知道正则表达式\s 应该匹配所有间距,所以我使用\s+ 将我的字符串拆分为RegexPal,效果很好,如下所示:

但由于某种原因,当我使用这个正则表达式运行我的 JavaScript 代码时,我得到了一个包含整个字符串的单元素数组。这是我的代码:

var coordArray = polygonString.split("\s+");

我尝试了几种不同的正则表达式,但我的 JavaScript 中的 split 函数似乎并没有表现得像它应该的那样。它不会在 RegexPal 中产生相同的结果。为什么是这样?我错过了什么?

【问题讨论】:

标签: javascript html regex


【解决方案1】:

用途:

var coordArray = polygonString.split(/\s+/);

【讨论】:

  • 我的监督。我希望这不是让我投反对票的原因。
  • 太棒了,成功了。我没有意识到我不需要使用引号。我仍然不太明白为什么我的不起作用。
  • @stackoverflow - 它不起作用。它只是给了我一个包含一个元素的数组。
  • @Steph,它不起作用,因为您尝试按字符串拆分,而不是正则表达式。 Javascript 不会在两者之间隐式转换。
【解决方案2】:

here,你需要用斜线包围正则表达式,试试polygonString.split(/\s+/);

【讨论】:

  • 我认为您误解了正则表达式在 JavaScript 中的工作方式。 要么使用斜杠引号来分隔split()操作的正则表达式(但如果使用字符串,则需要正确转义反斜杠)。
猜你喜欢
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多