هل هناك طريقة لاستخدام مطابقة ungreedy في جافا سكريبت لالتعابير العادية؟
-
21-08-2019 - |
سؤال
وأنا أتساءل عما إذا كان هناك طريقة لاستخدام مطابقة 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>' );
لا تنتمي إلى StackOverflow