Удалить все порбелы (JavaScript)

Замена пробелов подчеркиванием в JavaScript?

Я пытаюсь использовать этот код для замены пробелов _, он работает для первого пространства в строке, но все остальные экземпляры пробелов остаются неизменными. Кто-нибудь знает, почему?

7 ответов

Попробуйте .replace(/ /g,»_»); Изменить: или .split(‘ ‘).join(‘_’) , если у вас есть отвращение к REs Изменить: Джон Ресиг сказал:

Если вы ищете и замените через строку со статическим поиском и статическую замену его быстрее выполнить действие с помощью .split( «match» ). join ( «replace» ) — которая кажется противоречащей интуиции, но она так работает в большинстве современные браузеры. (Есть изменения чтобы значительно улучшить производительность .replace(/match/g, «заменить» ) в следующей версии Firefox — поэтому предыдущий оператор долго не будет.)

регулярное выражение: теперь у вас есть две проблемы! ха ха На самом деле, это одна из областей, где простой старый метод split / join может быть лучшим выбором, особенно если кодовая база будет распространяться среди неопытных пиров, которым, возможно, придется разбираться с вещами без вас, чтобы направлять их.

Разве решение с разделением / объединением не приведет к большим накладным расходам, выделяя и освобождая много строк, где решение может просто работать на месте?

Читайте также:  Python parse json load

Будущие люди, просматривающие этот @Inez, имеют ссылку для проверки обеих скоростей разделения / объединения VS. заменить. По состоянию на конец 2018 года замена значительно быстрее.

Источник

Удалить все пробелы (JavaScript)

Удалить все пробелы можно при помощи регулярных выражений и функции replace().

Пример

Например, есть слой с текстом и кнопка при нажатии на которую нужно будет все пробелы в слое удалить.

Во время решения задачи напишем функцию string del_spaces(string string) , которая возвращает строку string без пробелов.

// Функция удаления пробелов function del_spaces(str) < str = str.replace(/\s/g, ''); return str; >var lorem = ‘Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.’; function lorem_del_spaces()

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Категории

Читайте также

  • Удалить все пробелы (PHP)
  • Удалить двойные пробелы (PHP)
  • Удалить все теги (PHP)
  • str_repeat (JavaScript)
  • str_pad (JavaScript)
  • Вырезать все кроме цифр (PHP)
  • JavaScript md5
  • Переменная является строкой (JavaScript)
  • Многострочные переменные-строки (JavaScript)
  • Первую букву в верхний регистр (JavaScript)
  • JavaScript trim
  • Как обрезать строку (JavaScript)

Источник

Как заменить все пробелы в строке ввода знаком « — » с помощью JS?

NiceIce

Алексей Захаров: Вопрос не по теме: У меня в эту строку посылаешь текст с других строк ввода, на что заменить keyup что бы не пришлось нажимать в этой строке кнопку, а что бы после вставки текста с других строк скрипт срабатывал?

AngReload

NiceIce

AngReload: change не работает, но я что бы послать с других строк ввода текст в строку ввода в которой работает замена пробелов я нажимаю на кнопку с может будет работать если после нажатаия на кнопку которая перемещает текст с других строк в строку ввода з заменой пробелов и тогда будут заменяться пробелы?

AngReload

Rostyk Ice: Запутано говорите. Так понимаю:
Есть поля 1, 2 и 3. И кнопка, по нажатию на которую, поле 3 заполняется из 1 и 2.
Значит можно прямо в обработчике этой кнопки сделать замену.

NiceIce

$('body').append('') $("#mno").css("position", "absolute").css("top", 300).css("left", 5).css(< color: "red" >); $('#mno').click(function()< $('[name="keyword"]').val($('[name="vir"]').val() + "-" + $('[name="category_description[3][name]"]').val()); >); $('body').append('') $("#vir").css("position", "absolute").css("top", 260).css("left", 270).css(< color: "red" >); $('body').on('keyup', 'input[name="keyword"]', function(event) < event.preventDefault(); $(this).val($(this).val().replace(/\s/ig, '-')); >);

Извините что не могу толком пояснить, спасибо за понимание.
Строка ввода которая заменяет пробелы name=»keyword» кнопка на которую нажимаю

AngReload

Rostyk Ice: сравните, я обернул значения получаемые из полей в скобки и дописал туже замену что и при вводе:

$('body').append('') $("#mno").css("position", "absolute").css("top", 300).css("left", 5).css(< color: "red" >); $('#mno').click(function()< $('[name="keyword"]').val(($('[name="vir"]').val() + "-" + $('[name="category_description[3][name]"]').val()).replace(/\s/ig, '-')); >); $('body').append('') $("#vir").css("position", "absolute").css("top", 260).css("left", 270).css(< color: "red" >); $('body').on('keyup', 'input[name="keyword"]', function(event) < event.preventDefault(); $(this).val($(this).val().replace(/\s/ig, '-')); >);

Источник

Строковые функции в JavaScript

Строка — один из основных типов данных в JS. Сегодня я расскажу тебе о типе данных String и встроенных строковых функциях в JavaScript.

В JavaScript, все текстовые данные — это строки. Не важно, состоит твой текст из одного или десяти тысяч символов. Все это — строки.

Длину JavaScript строки ты можешь получить из поля length .

const s = 'Hello, World!'; console.log(s.length); 

Второй важный пункт стоит выделить отдельно:

JavaScript строка не изменяется после создания. Функции вроде replace или slice , вернут тебе новую строку, а оригинальная строка останется без изменений.

Обзор встроенных функций String в JavaScript

Во всех примерах, я буду считать, что ты объявил строку s как константу со значением I am going to become a FULL STACK JS Dev with Coderslang .

const s = 'I am going to become a FULL STACK JS Dev with Coderslang'; 

Как проверить включает ли одна строка другую

Чтобы проверить вхождение одной строки в другую в JavaScript существует встроенная функция includes .

Она вернет true или false в зависимости от результата проверки.

console.log(s.includes('FULL STACK')); // true console.log(s.includes('cheeseburger')); // false 

То же самое можно сделать иначе. Чтобы узнать есть ли какое-то слово в строке, ты можешь использовать функции indexOf или lastIndexOf . Они обе проверяют, включает ли основная строка искомую строку и вернут индекс элемента с которого начинается совпадение. А если совпадений не будет, то они обе вернут -1 .

console.log(s.indexOf('AWS')); // -1 console.log(s.lastIndexOf('AWS')); // -1 

Отличие indexOf от lastIndexOf становится очевидным, когда в основной строке несколько вхождений искомой подстроки.

console.log(s.indexOf('g')); // 5 console.log(s.lastIndexOf('g')); // 55 

Это отличие определяет и результат.

В любом случае, ты можешь использовать indexOf и lastIndexOf чтобы определить, включает ли одна строка другую в JavaScript. Если результат отличается от -1 , то да, совпадение найдено. Иначе — совпадений нет

Как определить начинается ли одна строка с другой строки

Чтобы узнать, стоит ли одна строка в начале другой строки в JavaScript существует функция startsWith . Она возвращает true если основная строка начинается со строки аргумента, иначе — false .

console.log(s.startsWith('I am')); // true console.log(s.startsWith('You are')); // false 

Как определить заканчивается ли одна строка другой строкой

Чтобы проверить вхождение одной строки в конце другой строки в JS существует функция endsWith . Она работает почти так же как и startsWith , но проверяет окончание строки, а не начало.

console.log(s.endsWith('Coderslang')); // true console.log(s.endsWith('Node.js')); // false 

Как удалить пробелы в начале и конце JavaScript строки

Чтобы удалить лишние пробелы в начале или конце JS строки ты можешь воспользоваться этими функциями:

  • trimStart — удаляет пробелы в начале строки
  • trimEnd — удаляет пробелы в конце строки
  • trim — удаляет пробелы в начале и конце строки

В нашей базовой строке не было пробелов, поэтому давай создадим новую для демонстрации.

const stringWithSpaces = ' I learn JS with Coderslang every day '; console.log(stringWithSpaces.trimStart()); //'I learn JS with Coderslang every day ' console.log(stringWithSpaces.trimEnd()); //' I learn JS with Coderslang every day' console.log(stringWithSpaces.trim()); //'I learn JS with Coderslang every day' 

Как перевести всю JS строку в ВЕРХНИЙ или нижний регистр

Чтобы получить строку идентичную данной, но со всеми буквами в верхнем регистре, ты можешь использовать функцию toUpperCase , а для нижнего регистра toLowerCase .

console.log(s.toUpperCase()); // I AM GOING TO BECOME A FULL STACK JS DEV WITH CODERSLANG console.log(s.toLowerCase()); // i am going to become a full stack js dev with coderslang 

Опять-таки, обрати внимание, что строка s не меняется, потому что все строки в JavaScript неизменяемы. Функции toUpperCase и toLowerCase возвращают новую строку, которая содержит все требуемые изменения.

Как заменить один символ на другой в JavaScript строке

Чтобы сделать замену символа в JS строке, ты можешь использовать функцию replace . Передай в нее две строки, и она заменит первое вхождения первой строки (в базовой строке) на вторую строку.

console.log(s.replace(' ', '!')) // I!am going to become a FULL STACK JS Dev with Coderslang console.log(s.replace('I am', 'You are')) // You are going to become a FULL STACK JS Dev with Coderslang 

Если ты удивлен, что replace меняет только один символ — это нормально. Просто это базовый сценарий.

Чтобы сделать замену всех символов (или подстрок), тебе нужна функция replaceAll .

console.log(s.replaceAll(' ', '!')) // I!am!going!to!become!a!FULL!STACK!JS!Dev!with!Coderslang 

Обрати внимание, что в зависимости от того, где ты запускаешь код, может иногда появиться ошибка.

TypeError: s.replaceAll is not a function

Если ты получил такую ошибку, то функция replaceAll не поддерживается твоим JavaScript окружением и ты можешь использовать регулярное выражение с флагом g . Так обычный replace сработает как replaceAll .

const regex = new RegExp(' ', 'g'); const s = 'I am going to become a FULL STACK JS Dev with Coderslang'; console.log(s.replace(regex, '!')); // I!am!going!to!become!a!FULL!STACK!JS!Dev!with!Coderslang 

Источник

Оцените статью