регулярное выражение javascript для удаления пробелов не удается, почему?

Я использую text.replace(/\s/g, '') для удаления всех пробельных символов из строки.

Я пробую это на русском тексте. Я делаю alert(text), который показывает мне правильную строку, но функция замены выдает эту ошибку - Bad Argument /\s/g

Я создаю файлы .jsx для сценариев Adobe InDesign. Метод замены работает для некоторых строк, но иногда дает сбой. Есть идеи, почему?

Спасибо.

РЕДАКТИРОВАТЬ

for (var i=0; i<arr.length; i++) {
    // If there is no text for the current entry, remove it
    alert(arr[i].text);
    if (arr[i].text == undefined || arr[i].text === "")  {
        arr.splice(i,1);
        i--;
        continue;
    }


    var trimmed = arr[i].text.replace(/\s/g, '');
        if (trimmed.text === "") {
        entries.splice(i,1);
        i--;
    }
.
.
.
}

person divyanshm    schedule 30.05.2013    source источник
comment
Регулярное выражение для удаления пробелов... почему?   -  person Grant Thomas    schedule 30.05.2013
comment
InDesign API возвращает пустые абзацы, @GrantThomas. Я просто проверяю, если абзац не содержит осмысленного текста, я не буду его выводить. Итак, я пытаюсь удалить все пробелы и сравнить с файлом .   -  person divyanshm    schedule 30.05.2013
comment
Можете ли вы опубликовать скрипку?   -  person elclanrs    schedule 30.05.2013


Ответы (3)


  • Вам нужно экранировать ("\\"), если в вашем тексте есть какие-либо специальные символы регулярных выражений, такие как $, ^ и т. д.

-Попробуйте опубликовать скрипку или вставьте ошибочный текст, мы можем проверить проблему.

person ManKum    schedule 30.05.2013

Мой плохой - это мой отредактированный ответ.

var str = "Hello this is my test string";
var newStr = str.replace(/ /g, '');

alert(newStr) // "Hellothisismyteststring";
person Mark Walters    schedule 30.05.2013

Я использовал .text() для заполнения текстовых объектов. Я узнал, что эта функция преобразует пробел в неразрывный пробел (символ 160).

Пришлось и это раздеть...
text.replace(/&nbsp;|\s+/g)

person divyanshm    schedule 31.05.2013