هل هناك طريقة لاستخدام مطابقة ungreedy في جافا سكريبت لالتعابير العادية؟

StackOverflow https://stackoverflow.com/questions/364014

سؤال

وأنا أتساءل عما إذا كان هناك طريقة لاستخدام مطابقة ungreedy في جافا سكريبت؟ حاولت U modifer، ولكن لا يبدو للعمل.

وأريد أن أكتب محلل ال BBCode صغير في جافا سكريبت، ولكن دون مطابقة ungreedy أنه من غير الممكن (على الأقل بقدر ما أراه) أن تفعل شيئا من هذا القبيل:

'[b]one[/b] two [b]three[/b]'.replace( /\[b\](.*)\[\/b\]/, '<b>$1</b>' );

ولكن هل هذا بديل يكون لطيفا منذ ليست هناك حاجة للتحقق من صحة HTML ثم. وهوامش الربح مغلقة البقاء نص بسيط.

هل كانت مفيدة؟

المحلول

ويمكنك استخدام ? بعد * أو + لجعله ungreedy، على سبيل المثال (.*?)

نصائح أخرى

وأنا في وقت متأخر، ولكن أنا ما بعد التعبير المعتاد على أي حال.

'[b]one[/b] two [b]three[/b]'.replace( /\[b\](.+?)\[\/b\]/g, '<b>$1</b>' );
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top