Недопустимая функция, связанная выше. Он не может избежать ^
или $
(начало и конец строки) или -
, которые в группе символов используются для диапазонов.
Используйте эту функцию:
RegExp.escape= function(s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
};
Хотя на первый взгляд может показаться ненужным, экранирование -
(а также ^
) делает функцию, подходящую для экранирования символов, вставляться в класс символов, а также тело регулярного выражения.
Escaping /
делает функцию подходящей для экранирующих символов, которые будут использоваться в литеральном выражении JS для последующего eval.
Поскольку нет недостатка для экранирования любого из них, имеет смысл
И да, неутешительно, что это не является частью стандартного JavaScript.
Если вы используете setRoot
в NavController
, он устанавливает новую страницу в качестве корневой. используйте push
вместо setRoot
.
openPage(page){
this.navCtrl.push(page);
}