Javascript чем заменить знак

Строковые функции в 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 

Источник

как заменить символ в строке js

Т.к. примитивы являются имутабельными (неизменяемыми), чтобы в исходной строке находилась ее измененная версия, нам необходимо заменить всю строку.

let str = 'как заменить символ в строке js'; str[0] = 'К'; // строка 'str' останется неизменной str = 'К' + str.slice(1); // заменили первую букву 

Этот код заменяет первый символ в строке ‘str’ на большую букву ‘К’. При этом исходная строка ‘str’ не изменяется, так как присваивание не происходит. Для замены символа в строке используется метод slice() , который возвращает подстроку строки, начиная с указанного индекса и заканчивая последним символом строки.

Существуют и другие более сложные способы замены, когда нужно определить положение символа или заменить целый фрагмент. Используя, например, методы find() , replace() .

Источник

Регулярные выражения в JavaScript часть 1 (replace)

Регулярные выражения в JavaScript — это мощный инструмент, который в умелых руках может творить чудеса. Знание регулярных выражений не слишком важно для создания сайтов, потому что они довольно редко встречаются в проектах. Но некоторые особо важные функции просто невозможно сделать без них. Поэтому стоит хотя бы ознакомиться с темой.

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

Типичная жизненная ситуация:
У программиста была одна проблема. Он решил эту проблему с помощью регулярного выражения. Теперь у программиста есть две проблемы!

Регулярные выражения в JavaScript лучше всего начать изучать с метода replace(X, Y). Этот метод заменяет часть строки на строку Y, используя регулярное выражение X. Попробуем продемонстрировать на примере:

var a = 'Тише, мыши, кот на крыше'; console.log( a.replace('ш', 'Ш') ); console.log( a.replace(/ш/g, 'Ш') );

Символы слеша в примере «/. /» называют ограничителями регулярных выражений в JavaScript. После ограничителя идёт модификаторы «g«, который указывают на глобальный поиск. То есть поиск и замена продолжатся даже после первого удачного совпадения. Теперь запустим код и проверим результат. Получится две строки. В одной сделана только одна замена, а во второй заменены все найденные вхождения:

ТиШе, мыши, кот на крыше ТиШе, мыШи, кот на крыШе

Обратите внимание, что замена с помощью replace чувствительна к регистру. Чтобы сделать регистронезависимую замену (заменять и заглавные и строчные), можно поставить модификатор «i«. Используем его вместе с модификатором «g» одновременно:

var a = 'Тише, мыши, кот на крыше'; console.log( a.replace(/Т/gi, 'М') );

Сила регулярных выражений в том, что в искомой строке можно задавать символы-команды. Приведём пример: буквы и цифры внутри регулярного выражения будут искаться и заменяться как есть, но символ точки «.» будет восприниматься как любой символ. То есть:

var a = 'Тише, мыши, кот на крыше'; console.log( a.replace(/м.ш./gi, 'МЫШИ') ); console.log( a.replace(/к. е/gi, 'сыре') );
Тише, МЫШИ, кот на крыше Тише, мыши, кот на сыре

Операторы повторения

  • + — символ повторяется один или более раз
  • * — символ повторяется ноль или более раз
  • ? — символ повторяется ноль или один раз. То есть может присутствовать или нет
var a = 'Тише, мыши, кот на крыше'; console.log( a.replace(/Т.+и/gi, 'Осторожно') );

Ограничение жадности

Регулярное выражение захватывает максимально возможное количество символов. Поэтому результат может быть неожиданным. К примеру, предположим, что нам надо заменить в строке «Тише, мыши, кот на крыше» слово «Тише» на «Громче». Для этого используем выражение:

var a = 'Тише, мыши, кот на крыше'; console.log( a.replace(/Т.+е/, 'Громче') );

Может показаться, что выражение сработает правильно. Но по факту оно найдёт букву «Т» в начале строки и букву «е» не в конце первого слова, а в конце всей строки. Результат получится такой:

Чтобы этого не происходило, необходимо ограничить жадность регулярного выражения. Для этого необходимо после оператора повторения (звёздочки «*» или плюса «+») поставить знак вопроса «?», чтобы они перестали быть такими жадными.

var a = 'Тише, мыши, кот на крыше'; console.log( a.replace(/Т.+?е/, 'Громче') );

Группирующие круглые скобки

Как было сказано ранее, операторы повторения работают только на символ, который стоит до них. Если же необходимо применить оператор повторения на несколько символов, то необходимо поставить скобки. Приведём пример:

var a = 'Тише, мыши, кот на крыше'; console.log( a.replace(/(ыш)+/g, '!') );

Из кода видно, что оператор повторения будет применяться к двум символам, стоящим в круглых скобках — (ыш). Результат выполнения такого кода:

Квадратные скобки

Существуют квадратные скобки. Если круглые являются «группирующими», или в терминах логики они делают соединение «и», то квадратные скобки — это логическое «или». Приведём пример:

var a = 'Тише, мыши, кот на крыше'; console.log( a.replace(/[ншр]+/g, '!') );

В результате выполнения этого кода все буквы «н», «ш», «р», которые стоят в квадратных скобках [ншр] будут заменены на восклицательный знак «!».

Существует ещё возможность сделать отрицание в квадратных скобках. Тогда будут заменены все символы, которые в них не попали. Это делается с помощью значка возведения в степень «^»:

var a = 'Тише, мыши, кот на крыше'; console.log( a.replace(/[^ншр]+/g, '!') );
  • [а-я] — все строчные буквы
  • [а-д] — строчные буквы от «а» до «д»: а, б, в, г, д
  • [а-яА-Я] — все строчные и заглавные буквы
  • 1 — все цифры
  • 4 — цифры: 4, 5, 6, 7
var a = 'Тише, мыши, кот на крыше'; console.log( a.replace(/н|ш|р/g, '!') );

Экранировка спецсимволов

Не являются спецсимволами:
@ : , ‘ » ; — _ = < >% # ~ `& ! /

К примеру, необходимо заменить все знаки «+» в строке. Но в регулярном выражении «+» является оператором повторения. Чтобы снять с него все функции и сделать простым символом, как букву или цифру, необходимо поставить перед ним знак падающего слеша «\», чтобы получилось «\+»:

var a = 'Мышь + сыр'; console.log( a.replace(/\+/g, 'плюс') );

В таком случае говорят, что знак «+» экранирован, поэтому не воспринимается как спецсимвол. Резуьтат будет таким:

Источник

Читайте также:  Writing to text files in java
Оцените статью