/ / В javascript има ли начин да се разграничат буквите от други знаци? - javascript, regex, string, замени

В javascript, има ли начин да се разграничат букви от други знаци? - javascript, regex, string, replace

Искам да заменя „ти“ с „сестра ти“. Въпреки това дума като "youtube" трябва да остане непроменена. Затова реших да използвам

replace(/ you /, " your sister ");

Въпреки това сега низът "Обичам те!"остава непроменен, както и всеки низ, където думата, която не сте последвана от низ с интервал в нея. Бих искал да знам дали символът, който следва думата" вие ", е буква или не. Ако е, оставете го непроменен, ако не е, сменете го на „сестра ви“.

Отговори:

6 за отговор № 1

Какво е "писмо"? Това не е толкова тъпо, колкото звучи: като пример, много езици се отнасят 7 като число, но има някои ортографии вкоето всъщност е писмо. Така че в този случай трябва да опишете какво имате предвид, така че отговорите да бъдат съобразени с това (добре сте се справили в това, но заглавието ви все още е внушително).

За да отговорите на актуалния въпрос, можете да направите глобална подмяна на редовни изрази като:

var replaced = input.replace(/byoub/g, "your sister");

Използвайки това, низът "ти" ще бъде заменен с "сестра ви", но само ако е заобиколен от "граници на думите" (интервали, начало / край на изречението, символи и т.н.).

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


4 за отговор № 2

Имате нужда от думата граница b

s.replace(/byoub/g, "your sister")

2 за отговор № 3

Търсите b (граница на думата):

slice(/byoub/, "your sister")

Но какво е slice? Предполагам имаш предвид нещо подобно

string.replace(/byoub/, "your sister")

2 за отговор № 4

b съвпада с граница на думата - между символа на думата (всъщност буквено-цифров плюс подчертаване)1) и символ без думи.

Така /byoub/ би отговаряло на "ти", когато не е част от друга дума.


1 Това е по „исторически причини“: улесни съпоставянето на обичайния набор от знаци, разрешени в C като идентификатори на езика за програмиране.