使用正则表达式拆分camelCase字符串

时间:2016-12-17 07:11:06

标签: javascript regex string split camelcasing

我有一个类似于此var date = '2016-06-18 05:18:27'; var myDate = new Date(date); Person.findAll({ where: { updatedAt: { $gt: myDate, }, }, orderBy: [['group', 'DESC']], }).then((people) => { // results are here }); 的Camel案例字符串,我希望使用大写字母作为分隔点拆分成数组。我期待着这个:

s = 'ThisIsASampleString'

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

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

但这并没有给我正确的结果,因为它删除了匹配的字符。我将此数组作为结果s = "ThisIsASampleString"; var regex = new RegExp('[A-Z]',"g"); var arr = s.split(re); 。它删除了所有匹配的大写字母。

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

1 个答案:

答案 0 :(得分:6)

您的正则表达式将基于大写分割,但结果数组不包含匹配的值。而是使用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