New RegExp замена в Custom Parameters у TinyMCE4 4.7.4

======
EVO 1.4.8 LTS и TinyMCE4 4.7.4
======

Нужно заменить

"<p>[[" на ""

Но не работает ни:


init_instance_callback: function (editor) {
		editor.on('PostProcess', function(e) {
			text = new RegExp("<p>\\[\\[", "g");
			e.content = e.content.replace(text,"");
        });
},

Ошибка:

Uncaught SyntaxError: Invalid regular expression: /<p>//[//[/: Unterminated character class

ни



init_instance_callback: function (editor) {
		editor.on('PostProcess', function(e) {
			text = new RegExp("<p>\[\[", "g");
			e.content = e.content.replace(text,"");
        });
},

Ошибка:

Uncaught SyntaxError: Invalid regular expression: /<p>/[/[/: Unterminated character class

ни


init_instance_callback: function (editor) {
		editor.on('PostProcess', function(e) {
			text = new RegExp("<p>[[", "g");
			e.content = e.content.replace(text,"");
        });
},

Ошибка:

Uncaught SyntaxError: Invalid regular expression: /<p>[[/: Unterminated character class

В то время как замена

"<p>{{" на ""



init_instance_callback: function (editor) {
		editor.on('PostProcess', function(e) {
			text = new RegExp("<p>{{", "g");
			e.content = e.content.replace(text,"");
        });
},

вполне работает. Исходя из этого и из того, что Console в Chrome говорит про ошибки, TinyMCE4 4.7.4 превращает "\" в "/"? Тогда попробовал заменить

"<p>\" на ""

но не работает ни:


init_instance_callback: function (editor) {
		editor.on('PostProcess', function(e) {
			text = new RegExp("<p>\\\", "g");
			e.content = e.content.replace(text,"");
        });
},

ни


init_instance_callback: function (editor) {
		editor.on('PostProcess', function(e) {
			text = new RegExp("<p>\\", "g");
			e.content = e.content.replace(text,"");
        });
},

ни


init_instance_callback: function (editor) {
		editor.on('PostProcess', function(e) {
			text = new RegExp("<p>\", "g");
			e.content = e.content.replace(text,"");
        });
},

Все это с целью освободить чанки и вызовы сниппетов от оборачивания в теги параграфа. В EVO 1.2.1 это вполне получалось таким образом:


init_instance_callback: function (editor) {
	editor.on('PostProcess', function (e) {
		var regex = /<p>(\{\{|\[\[|\[\!|\[\()(.*)(\}\}|\]\]|\!\]|\)\])<\/p>/g;
		var subst = "$1$2$3";
		e.content = e.content.replace(regex,subst);
	});
},

modx.im//blog/questions/5171.html#comment43707

1 комментарий

avatar
«Все это с целью освободить чанки и вызовы сниппетов от оборачивания в теги параграфа.» — я делал это проще.

В «Конфигурации / Интерфейс и представление / Действие клавиши Enter» ставите не Обернуть в p, а Добавить br.

В этом случае при нажатии Enter добавляется перевод строки, при нажатии Shift+Enter оборачивается в абзац, а по дефолту оборачивания в абзац не происходит.
Комментарий отредактирован 2019-04-21 05:43:05 пользователем Aharito
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.