Почему эта функция JavaScript не удаляет квадратные скобки один за другим? - PullRequest
0 голосов
/ 31 октября 2009
var asdf = "a[3] > b[5] > c[1]"

function removebracket(){
var newstring = asdf.replace(/\/[^\/]*$/, '')
alert(newstring);
}

<a href="#" onClick="javascript:removebracket();"> remove square brackets one by one </a>

Ответы [ 2 ]

1 голос
/ 31 октября 2009

Ваше регулярное выражение не делает ничего похожего на удаление скобок - похоже, оно для удаления частей из пути. Это уберет квадратные скобки:

var newstring = asdf.replace(/\[|\]/g, '');
0 голосов
/ 31 октября 2009

Небольшое объяснение вашего регулярного выражения:

/\/[^\/]*$/

Строка между первым и последним / является регулярным выражением

\/[^\/]*$

Здесь \/ соответствует /, поскольку \ используется для экранирования специальных символов, например /.

[^\/]

Все, что в квадратных скобках [] будет соответствовать ровно одному символу. ^ внутри скобок означает, что он будет соответствовать всему, кроме следующего символа. Следовательно, [^\/] будет соответствовать всему, кроме /.

* соответствует нулю или более предыдущего символа.

Наконец, $ соответствует концу строки или символу новой строки.

Используйте его с /foo/bar, и вы получите /foo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...