从占转义字符的字符数组创建字符串
Creating a string from an array of characters accounting for escape characters
我正在尝试编写一个函数,该函数接受组成字符串的字符数组(包括开始和结束'"')并返回组成该数组的字符串。
输入/输出示例:
input = ['"', 'h', 'e', 'l', 'l', 'o', ' ', 't', 'h', 'e', 'r', 'e', '"'];
output = "hello there";
或:
编辑(澄清无效数组示例):
var str = '"''''''"''"x''""'
JSON.parse(str); // returns "''"'"x'""
// I want my function to work the same way but after converting the str to an array
var array = str.split("");
现在我有以下内容:
var makeString = function(array){
var result = "";
var arr = string.split('');
var runner = true;
var i = 1;
while (arr[i]){
// This if statement doesn't work, but it is intended to
// account for any double quotes inside the string
if (arr[i] === '"' && arr[i-1] !== ''''){
return result;
}
result += arr[i];
i++;
}
};
我的函数没有真正工作,但我也需要它来解释转义字符和'r 'n 't等的所有使用(我首先不太理解)。
编辑/添加:从https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js我试图创建像crockford那样的东西,用子函数解析字符串,除了我想获取输入的当前状态并将其转换为数组并通过数组元素解析它。
string = function () {
// Parse a string value.
var hex,
i,
string = '',
uffff;
// When parsing for string values, we must look for " and ' characters.
if (ch === '"') {
while (next()) {
if (ch === '"') {
next();
return string;
}
if (ch === '''') {
next();
if (ch === 'u') {
uffff = 0;
for (i = 0; i < 4; i += 1) {
hex = parseInt(next(), 16);
if (!isFinite(hex)) {
break;
}
uffff = uffff * 16 + hex;
}
string += String.fromCharCode(uffff);
} else if (typeof escapee[ch] === 'string') {
string += escapee[ch];
} else {
break;
}
} else {
string += ch;
}
}
}
error("Bad string");
},
要去掉转义字符,需要使用字符串的replace
函数并接受一个正则表达式作为参数
function arrayToString(array) {
return array.join('').replace(/['''"]/g, "")
}
测试用例var input = ['"', 'h', 'e', 'l', 'l', 'o', ' ', 't', 'h', 'e', 'r', 'e', '"'];
arrayToString(input)
=> "hello there"
相关文章:
- 从多维嵌套json数组创建下拉列表
- 为对象数组创建列表项
- 如何在cycle js中从JSON数组创建组件
- 使用数据数组创建多个类似组件
- 如何在 Angular JS 中从关联数组创建多个复选框
- 如何为给定数组创建跨度列表
- 如何在javascript中使用2个一维数组创建层次结构树
- 从数据对象数组创建折线图
- 从 javascript 数组创建一个 Jquery 数组
- Angular2从数组创建一个列表
- 使用JavaScript's Reduce从对象数组创建数组
- 如何从数组创建 jqtree
- 从字符串数组创建唯一组合数组
- 反应.js通过数组创建循环
- 从数组创建新元素,直到每秒数组为空
- 如何使用其他流的值数组创建流
- JavaScript:从字节数组创建图像资源
- 使用拆分字符串的数组创建一个对象
- 从一组数据或数组创建对象
- 多维数组 - 创建一个表