Замена пробелов символами подчеркивания в JavaScript?
Я пытаюсь использовать этот код для замены пробелов _, он работает для первого пространства в строке, но все остальные экземпляры пробелов остаются неизменными. Кто-нибудь знает, почему?
function updateKey()
{
var key=$("#title").val();
key=key.replace(" ","_");
$("#url_key").val(key);
}
Ответы
Ответ 1
Попробуйте .replace(/ /g,"_");
Изменить: или .split(' ').join('_')
, если у вас есть отвращение к REs
Изменить: Джон Ресиг сказал:
Если вы ищете и замените через строку со статическим поиском и статическую замену его быстрее выполнить действие с помощью .split( "match" ). join ( "replace" ) - которая кажется противоречащей интуиции, но она так работает в большинстве современные браузеры. (Есть изменения чтобы значительно улучшить производительность .replace(/match/g, "заменить" ) в следующей версии Firefox - поэтому предыдущий оператор долго не будет.)
Ответ 2
попробуйте следующее:
key=key.replace(/ /g,"_");
который будет выполнять глобальную поиск/замену
заменить javascript
Ответ 3
Чтобы ответить на вопрос Прасанны ниже:
Как заменить несколько пробелов на одно пространство в Javascript?
Вы использовали бы ту же функцию replace
с другим регулярным выражением. Выражение для пробелов равно \s
, а выражение для "1 или более раз" означает +
знак плюса, поэтому вы просто замените ответ Адама следующим текстом:
key=key.replace(/\s+/g,"_");
Ответ 4
Вы можете попробовать это
var str = 'hello world !!';
str = str.replace(/\s+/g, '-');
Он даже заменит несколько пробелов одним "-".
Ответ 5
Я создал тест производительности JS для него http://jsperf.com/split-and-join-vs-replace2
Ответ 6
Замените пробелы символом подчеркивания
var str = 'How are you';
var replaced = str.split(' ').join('_');
Вывод: How_are_you
Ответ 7
Я знаю, что это старо, но я не видел, чтобы кто-нибудь упоминал о продлении строки prototype
.
String.prototype.replaceAll = function(search, replace){
if(!search || !replace){return this;} //if search entry or replace entry empty return the string
return this.replace(new RegExp('[' + search + ']', 'g'), replace); //global RegEx search for all instances ("g") of your search entry and replace them all.
};
Ответ 8
Просто с помощью replace
:
var text = 'Hello World';
new_text = text.replace(' ', '_');
console.log(new_text);