Удаление нулевого символа из строки в javascript
Как удалить нулевые байты из строки в nodejs?
MyString\u0000\u0000\u00000
Я попробовал string.replace('\0', '');
, но он не работает. Есть ли какой-либо пакет node, который хорош для управления строками?
Ответы
Ответ 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
Ответ 2
Чтобы обрезать справа от всех нулей (или любой другой символ, просто отредактировав регулярное выражение) в JavaScript, вы можете сделать что-то вроде этого.
string.replace(/\0[\s\S]*$/g,'');
Итак, например:
var a = 'a\0\0test\nnewlinesayswhat!';
console.log(a.replace(/\0[\s\S]*$/g,''));
Выводит 'a'.
после сна на нем индекс с substr может быть лучше, если ваш верный нуль будет где-то в строке.
a.substr(0,a.indexOf('\0'));
Или функция, чтобы проверить, не уверены ли.
function trimNull(a) {
var c = a.indexOf('\0');
if (c>-1) {
return a.substr(0, c);
}
return a;
}