JavaScript 用退格键连接字符串

标签 javascript string concatenation backspace

我有一个函数 f 类似于

function f(str){
    alert("abc"+str);
}

现在,我想以这样一种方式使用 JavaScript 特殊字符“\b”,以便我可以选择是否要显示硬编码字符串“abc”。例如,

f("\b\b"+"yz"); //should output "ayz"

我也试过了,还是不行。换句话说,我想用退格字符连接一个字符串,以便我可以从字符串中删除最后一个字符。

我们可以用 JavaScript 做到这一点吗?

编辑 真正的代码太大了(它是一个巨大的 1 衬里,连接了很多很多字符串)。要在上面的示例中映射它,我们不能编辑函数 f,所以你可以从函数 f 外部做任何你想做的事情。

最佳答案

问题是因为 \b 只是 ASCII 码中的另一个字符。只有在某些字符串读取器(例如文本终端)实现时才会出现特殊行为。

您需要自己实现退格行为。

function RemoveBackspaces(str)
{
    while (str.indexOf("\b") != -1)
    {
        str = str.replace(/.?\x08/, ""); // 0x08 is the ASCII code for \b
    }
    return str;
}

示例:http://jsfiddle.net/kendfrey/sELDv/

像这样使用它:

var str = RemoveBackspaces(f("\b\byz")); // returns "ayz"

关于JavaScript 用退格键连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11891653/

相关文章:

ruby - 如何防止方法改变其参数?

MySQL CONCAT 表过滤语法

javascript - 在 ffmpeg AWS Lambda 层中使用 ffprobe 输出文件详细信息

javascript - 如何在内部使用带条件的过滤器?

c++ - 在 C++ 中计算非常大的数字

r - Stringr 函数或 gsub() 来查找 x 数字字符串并提取前 x 数字?

MySQL - 如何连接至少包含一个字母字符的列

javascript - 正则表达式将 'cause and ' til 等单词中包含的直引号转换为弯引号

c# - 为什么 C# 和 ECMAScript 规范在可读性上存在很大差异?

R 将表连接成字符串