2015-05-10 2 views
0

У меня есть простой код прямо здесь, который должен взять периоды из строки, а затем разбить все слова на массив. Часть массива работает нормально, но с использованием .replace на моей строке удаляется только первый период. Разве не предполагается удалить все экземпляры периода? Результатом я получаю в консоли:String replace не заменяет второй экземпляр символа

["Это", "is", "a", "test", "of", "the", "emergency", "broadcast", "system »,« Это »,« есть »,« только »,« а »,« тест ».]

Как вы можете видеть, последний период все еще существует. Почему это не удаляется моей заменой строки и как я могу взять все периоды из строки?

Вот мой код:

var the_string = "This is a test of the emergency broadcast system. This is only a test."; 
var str_words = the_string.replace(".", ""); 
str_words = str_words.split(" "); 
console.log(str_words); 
+0

Или, может быть, [Как заменить все точки в строка с использованием JavaScript] (http://stackoverflow.com/q/2390789/1529630) был лучшим дубликатом? – Oriol

ответ

3

Вы должны использовать регулярное выражение с (глобальным) флагом g.

var str_words = the_string.replace(/\./g, ""); 
0

Вы можете сделать следующее разделив строку затем с помощью map удалить период (ы):

var the_string = "This is a test of the emergency broadcast system. This is only a test."; 
 
var str_word = the_string.split(" ").map(function(x){return x.replace(".", "")}) 
 
alert(JSON.stringify(str_word));

Смежные вопросы