在javascript中从字符串中删除空字符

maj*_*rif 24 javascript node.js

如何从nodejs中的字符串中删除空字节?

MyString\u0000\u0000\u00000
Run Code Online (Sandbox Code Playgroud)

我试过string.replace('\0', '');但它似乎没有用.是否有任何节点包适合操作字符串?

aki*_*irk 43

它工作,但像这样它只删除1个空字节的实例.您需要使用正则表达式和g修改器来执行此操作

var string = 'MyString\u0000\u0000\u0000';
console.log(string.length); // 11
console.log(string.replace('\0', '').length); // 10
console.log(string.replace(/\0/g, '').length); // 8
Run Code Online (Sandbox Code Playgroud)

  • 好吧,`.trim()`意味着删除空格,而不是控制字符.因此,要走的路是`.replace()`.如果你想要类似于修剪的行为,你可以使用类似`string.replace(/ ^\0 + /,'').replace(/\0 + $ /,'')`的东西.这将在字符串的中间留下`\ 0`.但我几乎无法想到一个有意义的案例. (2认同)

Lia*_*ell 6

以下用正则表达式替换将从字符串中删除空字节及其后的任何其他内容.

string.replace(/\0.*$/g,'');
Run Code Online (Sandbox Code Playgroud)

要在JavaScript中修剪所有null(或任何其他字符只是编辑正则表达式),你可能想要做这样的事情.

string.replace(/\0[\s\S]*$/g,'');
Run Code Online (Sandbox Code Playgroud)

例如:

var a = 'a\0\0test\nnewlinesayswhat!';
console.log(a.replace(/\0[\s\S]*$/g,''));
Run Code Online (Sandbox Code Playgroud)

输出'a'.

在它上面睡觉之后,如果确定的null将在某个字符串中,则带有substr的索引可能会更好.

a.substr(0,a.indexOf('\0'));
Run Code Online (Sandbox Code Playgroud)

或者是检查是否不确定的功能.

function trimNull(a) {
  var c = a.indexOf('\0');
  if (c>-1) {
    return a.substr(0, c);
  }
  return a;
}
Run Code Online (Sandbox Code Playgroud)