将预先格式化的文本转换为chararray

时间:2014-07-13 07:11:06

标签: javascript regex arrays

这是

Enter Your Name  :xyz
Enter Your Age   :abc

我希望将预先格式化的文本转换为charArray。

我正在尝试通过转换来实现它

var something;
var pre=document.getElementsByTagName("pre")[0]; 
pre.innerHTML.split(something);

var 某些东西应该是一些正则表达式。

以下是regexp的要求:

1)保留所有空白区域,包括存在的多个空格(即阵列中每个空格的单独索引)

2)保留换行符

请用纯粹的javascript提供答案。我真的很感激。

2 个答案:

答案 0 :(得分:1)

RegEx:

(.)|(\n)

Demo

<强>代码

pre.innerHTML.match(/(.)|(\n)/g);

//output
["E", "n", "t", "e", "r", " ", "Y", "o", "u", "r", " ", "N", "a", "m", "e", " ", " ", ":", "x", "y", "z", "
", "E", "n", "t", "e", "r", " ", "Y", "o", "u", "r", " ", "A", "g", "e", " ", " ", " ", ":", "a", "b", "c"]

无法将\n重新定位为"\n"。第21个元素是\n。这就是输出为两行输出的原因。如果您要搜索广告替换"\n",请使用indexOf("\n")并将其替换为"\\n"

<强>例如

while(k.indexOf('\n')!= -1) {
        k[k.indexOf('\n')] = "\\n"
}

//output    
    ["E", "n", "t", "e", "r", " ", "Y", "o", "u", "r", " ", "N", "a", "m", "e", " ", " ", ":", "x", "y", "z", "\n", "E", "n", "t", "e", "r", " ", "Y", "o", "u", "r", " ", "A", "g", "e", " ", " ", " ", ":", "a", "b", "c"]

使用RegEx的另一种选择:虽然对我来说是一种污泥

var charArr = []
k=$('#regex_string').val().replace(/(.)|(\n)/g, function(a,b) {
    if(a == "\n") {
        charArr.push("\\n")
        return "\\n"
    } else {
        charArr.push(a)
        return a
    }
})
console.log(charArr)

答案 1 :(得分:0)

在javascript字符串中默认为char数组。

var x = "this is a string";

所以你可以这样做:

var l = x.length; //get string length
var c = x[l - 1]; // last char of x

对于您调用toString的数字:

 var y = 1234;
 var x = y.toString ();