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

标签 javascript regex arrays

这里是

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)

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。这就是为什么输出是两行输出。如果您想搜索广告,请使用 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/

相关文章:

javascript - 为什么 CKEDITOR 在我的 Rails 生产站点中找不到编辑器的图标?

javascript - Backbone 模型获取刷新事件未触发

regex - 匹配任何字序正则表达式的字符串

java - 使用 ArrayList<Character> 时标识符无效

javascript - 处理未格式化的数据数组

javascript - 客户端分页无法在 jqGrid 中使用 JSON

javascript - 在欧芹无效后将字段更改回有效

c# - 我有正则表达式将字符串拆分为单词、数字和标点符号列表。如何制作列表的 "a-z"和 "0-9"单个元素?

python - 与包含点的字符串匹配时出现奇怪的正则表达式行为

java - 如何向用户显示数组