как да добавите пространство в 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 трябва да работи.