Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание строки по регулярному выражению (https://javascript.ru/forum/misc/51983-sozdanie-stroki-po-regulyarnomu-vyrazheniyu.html)

danik.js 28.11.2014 19:03

Странное чувство. Зашел в trending гитхаба

И первой же строкой идет вот такая вот штуковина:
JavaScript Regular Expression Parser & Visualizer. http://jex.im/regulex/

krutoy 28.11.2014 22:48

danik.js,
В чем же странность твоего чувства? Какое отношение парсер, а, тем-более, "visualizer" имеют к генерации строк по регекспу?

danik.js 29.11.2014 06:31

Да? А мне показалось что все очевидно. По крайней мере я тут же прикинул план решения.
Видимо у тебя с этим трудности.

krutoy 29.11.2014 07:41

danik.js,
вот тебе регулярное выражение f.o
вот тебе его парсер /f\.o/
сгенерируй мне выходные слова

danik.js 29.11.2014 10:33

Цитата:

Сообщение от krutoy
сгенерируй мне выходные слова

Нахуй слова, когда тс просит первый подходящий вариант?
И как ты себе представляешь генерацию всех вариантов для регулярки x* ?

danik.js 29.11.2014 10:38

<script src="http://libs.useso.com/js/require.js/2.1.11/require.min.js"></script>
<script>
	require.config({
		baseUrl: "http://jex.im/regulex",
	});
	require(['dest/parse'], function(parse) {
		var re = 'krutoy.лох';
		var root = parse(re);

		alert(generateMatchingString(root.tree));
	});

	var generateNode = {
		exact: function(node) {
			return node.chars;
		},
		dot: function(node) {
			return '*';
		},
		choice: function(node) {
			return generateMatchingString(node.branches[0]);
		}
	};

	function generateMatchingString(tree) {
		var chunks = tree.map(function(node){
			return generateNode[node.type](node);
		});
		return chunks.join('');
	}

</script>


Узлы backref, repeat, empty, charset и тд предлагаю реализовать топик-стартеру. Либо раздел Работа.

krutoy 29.11.2014 10:56

Цитата:

Сообщение от danik.js
dot: function(node) {
return '*'

А это чо значит? Ты за идиотов тут всех держишь? Может вот так сразу
alert("krutoy.loh".replace(/\./, "*"))

?
Или ты сам идиот?

krutoy 29.11.2014 11:01

Цитата:

Сообщение от danik.js
как ты себе представляешь генерацию всех вариантов для регулярки x*

Это ты что-то там представлял. Видимо, начинает допирать.

danik.js 29.11.2014 12:06

Цитата:

Сообщение от krutoy
Может вот так сразу

Ну хуле, давай, покажи как таким макаром генерировать повторы, бэкрефы, лукахеды, и прочую хуиту :D

danik.js 29.11.2014 12:12

Короче, ди нах троль. ТС поставил задачу, я показал как ее можно решить. Можешь дальше ссаться кипятком.


Часовой пояс GMT +3, время: 20:57.