Я боюсь понять, что это значит: /[\[]/
Почему существуют два оператора замены?Что это регулярное выражение:/[ [] /?
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
Я боюсь понять, что это значит: /[\[]/
Почему существуют два оператора замены?Что это регулярное выражение:/[ [] /?
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
/[\[]/
является regular expression literal.
В первой замене вы заменяете [
на \[
и насимметричный во втором.
Это выглядит странно, потому что многие (в основном бесполезные) спуски: [
экранируются в регулярных выражениях и \
и [
спасшиеся в строковом литерале.
Первое регулярное выражение может быть проанализирована следующим образом:
/
: регулярное открытие[
: набор символов открытие\[
: [
символ (с побега, что не имеет смысла, поскольку это в комплект)]
: набор символов закрытие/
: regex closedЭти регулярные выражения выглядят слишком многословными: вам не нужен набор символов, если у вас есть только один символ в этом наборе. И вам не нужно скрывать [
в строковом литерале.
Вы могли бы сделать
name = name.replace(/\[/, "\\[").replace(/\]/, "\\]");
Например
'a [ b c ] d [ e ]'.replace(/\[/, "\\[").replace(/\]/, "\\]")
дает
"a \[ b c \] d [ e ]"
Обратите внимание, что, как нет g
модификатора, вы делаете только одну замену в каждом позвоните по номеру replace
, что, вероятно, не является целью, поэтому вам может понадобиться
name = name.replace(/\[/g, "\\[").replace(/\]/g, "\\]");
Это - регулярное выражение. Если вы не знакомы с регулярным выражением, вы можете сначала указать study.
Это не относится к Javascript, регулярные выражения используются на большинстве языков программирования с небольшими вариациями. Посмотрите на регулярные выражения, очень полезно, как только вы это узнаете!
Может быть, вы увидите, как это работает на примере
var name = "[[[[[]]]]]]]";
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
console.log(name);
в результате вы будете иметь
\[[[[[\]]]]]]]
Это регулярное выражение заменить первое вхождение [
в \[
и первое вхождение ]
в \]
им жаль, но я должен быть замедлен, я все равно не понимаю. Например, если я правильно ее понимаю, в/[\ []/<- [будет заменен на \ [, но тогда что такое конец:]/for? –
@fishman Я отредактировал для подробностей. Яснее? –
thnxs все, я буду изучать это ближе. –