как да добавите пространство в javascript низ


Отговор 1:

Тъй като друг отговор посочва, че „интервалите“ между един и същ символ нямат никакъв смисъл. Ако обаче искате интервали * около * този знак, тогава друга опция, която трябва да вземете предвид, е Regex.

Regex или * Regular Expressions * е специален низ формат, който е полезен като формат за заявки. Много за регулярния израз може да се прочете на MDN

документация

, но красотата му е, че е много мощен, много здрав инструмент.

Например, ако трябваше да разделим низа върху символа `/`, след това да се присъединим към него с "/" (space-slash-space), потенциално бихме могли да срещнем проблем. Ами ако потребителят вече е добавил интервали там? Току-що удвоихме разстоянието.

Вместо това, използвайки регулярния израз, можем да кажем „с този низ, когато нашата заявка срещне дума *, непосредствено последвана от наклонена черта, която веднага е последвана от друга дума * (т.е. без интервали), след това заменете това с това. Ето как може да изглежда това:

'категория / подкатегория'. замени (/ (\ w +) \ / (\ w +) / g, '$ 1 / $ 2');

И това е. Този ред дефинира низ, срещу който да се тества („категория / подкатегория“), след което използва заместване. Регексът е тази първа част: `/ (\ w +) \ / ((\ w +) / g` и това е най-объркващата част от цялото нещо. Нека го анализираме:

  • `/ ... / g` - това е маркер за регулярен израз, а` g` показва, че ако срещне повече от един, заменете всички.
  • `(\ w +)` - това всъщност са три отделни парчета. "(...)" създава * група за заснемане *, която ни позволява да запомним каквото и да е, че сме в нея. Символът \ \ w обозначава знак от тип дума, знак, който не е с интервали. И "+" казва "всички символи от тип дума подред" (т.е. между интервали или контролни знаци.
  • `\ /` - това ни позволява да съчетаем наклонената черта. Това е контролен знак, така че трябва да го избягаме, което е водещата обратна наклонена черта.

И така, общо. този ред казва „намери * и запомни * дума веднага последвана от наклонена черта и втора * също запомнена * дума.“

Защо казваме на двигателя на javascript да запомни тези думи? Тъй като, използвайки `replace (...)`, нашият регулярен израз ни позволява да дефинираме * модел *. В низа, който е вторият параметър за „заместване (...)“, дефинираме „$ 1“ и „$ 2“ - това са двете групи за улавяне, които поискахме да бъдат запомнени. Тук казваме „сега използвайте тази първа запомнена дума, добавете интервал и наклонена черта и вмъкнете втората запомнена дума.

Това се случва много и не е тема от начално ниво, но е много мощна. Нашият регулярен израз по-горе ще замени само наклонените черти, които * не * вече имат интервали около тях, оставяйки тези с интервали сами.

Освен това по този начин се избягва допълнителната стъпка за принуждаване на низа към масив и обратно към низ. Само моите 0,02


Отговор 2:

Можете да използвате регулярен израз, за ​​да замените / s * /// s * с „/“.

Разбивка на регулярния израз:

/ s * означава празно пространство нула или повече пъти

// означава '/', но '/' трябва да бъде екраниран. За съжаление, с друг /

След това има още / s *.

Така че тук заместваме последователност от нула или повече водещи интервали, последвани от '/', последвано от нула или повече последващи интервали с „/“


Отговор 3:

Не съм напълно сигурен, че разбирам какво се има предвид като се добавят интервали между символа „/“, но предполагам, че искате да превърнете нещо като „пример / пример“ в „пример / пример“. Ако случаят е такъв, можете да използвате

String.prototype.split ()

заедно с

Array.prototype.join ()

:

const str = 'пример / пример / пример';console.log (str.split ('/'). join ('/');// Очакван изход:// 'пример / пример / пример'

Методът split () превръща низа в масив от низове, като разделя низа при всеки екземпляр на определен сепаратор. В този случай разделителят е просто '/'

Методът join () създава и връща нов низ чрез обединяване на всички елементи в масива, разделени от определен разделител. В такъв случай ' / '


Отговор 4:

a2a

Обработката на низове и подмяната на символи са много често срещани задачи на JS и ги правя често. Използвам регулярно изражение с "String.prototype.replace", предложената от мен заявка за регулярно изражение и внедряването са едновременно по-лесни и по-ясни.

console.log ('здравей / жесток / свят'. замени (/ [[/] / g,' / '));щампи: здравей / жесток / свят

ЗАБЕЛЕЖКА: Този регулярен израз не взема предвид допълнителни интервали, които може вече да са там, но критериите не са предоставени във въпроса. В производствения код обаче бих взел предвид възможните допълнителни интервали. В този случай се нуждаете от малко по-усъвършенствано регулярно изражение, което използва отрицателен поглед и поглед назад.

var регулярно изражение = / (?console.log ('наклонена черта / разположена / но / добавяне / тук'.replace (регулярно изражение,' / '));разпечатки: наклонена черта / на разстояние / но / не / тук

Отговор 5:

Наклонената черта '/' не е специален символ, така че интервалът се добавя по обичайния начин, като се натиска интервал. Това трябва да е така, освен ако не разбирам напълно какво се опитвате да посочите.


Отговор 6:

Можете да използвате шаблонни литерали, за да форматирате всичко в es6 javascript. Това е най-добрият начин да използвате всички символи, без да е необходимо да използвате символи за бягство.


Отговор 7:

var mystring = „здравей / невероятен / свят“;

mystring.split (“/”). join (“/“);

Или

mystring = mystring.replace (“/”, “/“);


Отговор 8:

% 20 трябва да работи.