我有一个像这样的驼峰式字符串s = 'ThisIsASampleString'
我想使用大写字母作为分隔点分成一个数组。我期待这个:
['This', 'Is', 'A', 'Sample', 'String']
这是我到目前为止所做的
s = "ThisIsASampleString";
var regex = new RegExp('[A-Z]',"g");
var arr = s.split(re);
但这并没有给我正确的结果,因为它删除了匹配的字符。我得到这个数组作为我的结果["his", "s", "", "tring"]
。它已删除所有匹配的大写字母。
我应该如何避免这种行为并将匹配的字符也保留在我的结果数组中?
您的正则表达式将根据大写字母进行拆分,但结果数组不包含匹配的值。而是使用积极的前瞻断言 http://www.regular-expressions.info/lookaround.html来维护自己的立场。
s = "ThisIsASampleString";
var arr = s.split(/(?=[A-Z])/);
console.log(arr);
正则表达式解释在这里 https://regex101.com/r/Ueb6Gq/1
或者你可以使用String#match https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/match方法代替。
s = "ThisIsASampleString";
var arr = s.match(/[A-Z][^A-Z]*/g);
console.log(arr);
正则表达式解释在这里 https://regex101.com/r/X60F0x/2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)