在某个索引处将字符串拆分为数组(没有字符丢失)

时间:2011-08-06 02:25:14

标签: javascript

我正在尝试将一个字符串从用户输入传递到我的函数中,并使用正则表达式来检测其中是否存在非单词字符(符号)我想要提取其中的第一个字符数组[0]中的字符串和数组[1]中的其余部分是否有任何方法可以在正则表达式中执行此操作,也许/ ^(零长度选择器)/,我已经尝试编写自己的表达式但是无法使其无法正常工作。任何想法?

编辑: 我基本上正在寻找一个可以在索引0和1之间选择空间的正则表达式,所以我可以拆分它。所以,如果说'#domElementId'进入['#','domElementId']就会出现。

2 个答案:

答案 0 :(得分:1)

这样的事情:

function splitCharacters(str) {
    return [str.split(/[0-9a-z]+/gi).join(''), str.match(/[0-9a-z]+/gi).join('')];
}
var array = spiltCharacters('#asdfasdf#3434+_+_+_ASDASD');

答案 1 :(得分:0)

实际上已经弄清楚了,在学习了RegExp的输入和输出2天后,结果非常简单。 StackOverflow虽然是一个不可或缺的帮助。无论如何,这是我最终想出来的。

function splitFirst(a) {
   return a.split(new RegExp('(?=\\w{'+(a.length-1)+'}$)'));
}
  1. 我在split params中声明了RegExp,原因是我想将变量传递给表达式。
  2. 我基本上选择了向前看的零宽度选择,传递的字符串中的字符数减去任何字符(\ w)的一个(或任何其他索引)。
  3. 我正在将表达式组合成一个字符串,因此'\\'表示litteral \ w(意思是任意数字的任何字母)后面紧跟字符串结尾。