【问题标题】:Split a camelCase string with regex使用正则表达式拆分驼峰式字符串
【发布时间】:2016-12-17 07:11:06
【问题描述】:

我有一个像 s = 'ThisIsASampleString' 这样的骆驼大小写字符串,我想使用大写字母作为分隔点拆分成一个数组。我期待这个:

['This', 'Is', 'A', 'Sample', 'String']

这是我到目前为止所做的事情

s = "ThisIsASampleString";
var regex = new RegExp('[A-Z]',"g");
var arr = s.split(re);

但这并没有给我正确的结果,因为它删除了匹配的字符。我得到这个数组作为我的结果["his", "s", "", "tring"]。它已删除所有匹配的大写字母。

我应该如何避免这种行为并将匹配的字符也保留在我的结果数组中?

【问题讨论】:

  • 这不是骆驼套。驼峰式字符串将以小写字母开头。这有时被称为“帕斯卡套管”。
  • 注明@torazaburo

标签: javascript regex string split camelcasing


【解决方案1】:

您的正则表达式将根据大写进行拆分,但结果数组不包含匹配的值。而是使用positive look-ahead assertion 来声明位置。

s = "ThisIsASampleString";
var arr = s.split(/(?=[A-Z])/);

console.log(arr);

Regex explanation here


或者您可以使用String#match 方法代替。

s = "ThisIsASampleString";
var arr = s.match(/[A-Z][^A-Z]*/g);

console.log(arr);

Regex explanation here

【讨论】:

猜你喜欢
  • 2021-10-21
  • 2013-06-26
  • 2018-11-30
  • 2013-02-28
  • 2017-02-23
相关资源
最近更新 更多