Я'м пытаюсь использовать этот код, чтобы заменить пробелы на _, это работает для первого пробела в строке, но и все остальные экземпляры пространства остаются неизменными. Кто-нибудь знает почему?
function updateKey()
{
var key=$("#title").val();
key=key.replace(" ","_");
$("#url_key").val(key);
}
Попробовать .заменить(/ /г, то"_" - а);
Редактировать: или.сплит(' ').присоединяйтесь('_')` Если у вас есть отвращение к РЭС
Редактировать: Джон Резиг сказал:
если вы'повторный поиск и замена через строку с статический поиск > и статический заменить его's быстрее получить выполнять действия с .Сплит("в матче с").присоединиться (на"замены") - который кажется нелогичным, но это удается работать в самых В современных браузерах. (Есть изменения пойду в место, чтобы сильно улучшить производительность .заменить(/матч/г, наша "замены") в следующей версии в Firefox - так в предыдущем заявлении выиграл'т быть так долго.)
попробуйте это:
key=key.replace(/ /g,"_");
что'будете делать глобальный поиск/замена
Чтобы ответить на Прасанна'ы вопрос ниже:
как заменить множественные пробелы на один пробел в JavaScript ?
Вы бы использовать ту же функцию "заменить" с другим регулярным выражением. Выражение для пробельные символы \S
и выражение для "был 1 или несколько раз" это +
знак плюс, так что вы'd только вместо Адама'ы ответ со следующим:
key=key.replace(/\s+/g,"_");
Вы можете попробовать это
var str = 'hello world !!';
str = str.replace(/\s+/g, '-');
Он будет даже заменить множественные пробелы в один '-'.
Я знаю, что это старый, но я не'т вижу, чтобы кто-нибудь упоминал расширение прототипа строку``.
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.
};
Только с помощью "заменить": в
var text = 'Hello World';
new_text = text.replace(' ', '_');
console.log(new_text);
в