这里是
Enter Your Name :xyz Enter Your Age :abc
I want this preformatted text to be converted into charArray.
I am trying to implement it by converting
var something;
var pre=document.getElementsByTagName("pre")[0];
pre.innerHTML.split(something);
var something 应该是一些正则表达式。
以下是正则表达式的要求:
1)保留所有空白,包括曾经存在的多个空格(即数组中每个空白的单独索引)
2) 保留换行符
请用纯javascript提供答案。我将非常感激。
最佳答案
正则表达式:
(.)|(\n)
代码
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
。这就是为什么输出是两行输出。如果您想搜索广告,请使用 indexOf("\n")
替换 "\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"]
使用正则表达式的另一种选择:尽管对我来说这是一种麻烦
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)
关于javascript - 将预先格式化的文本转换为 chararray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24720361/