জাভাস্ক্রিপ্ট / রেজেক্স: বন্ধনীগুলির মধ্যে পাঠ্য সরান


96

এটা কি পরিবর্তন করা সম্ভব?

Hello, this is Mike (example)

প্রতি

Hello, this is Mike

রেগেক্সের সাথে জাভাস্ক্রিপ্ট ব্যবহার করছেন?

উত্তর:


217
"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, "");

ফলাফল:

"Hello, this is Mike"

14
নোট করুন .replace () স্ট্রিংটি নিজেই পরিবর্তন করে না, এটি কেবল একটি নতুন স্ট্রিং প্রদান করে। সুতরাং আপনি এখনও পরিবর্তনশীল আপনার পরিবর্তিত হিসাবে সমান হতে সেট করতে হবে।
আইয়ুব

4
প্রথম বন্ধনীগুলি যখন একটি স্ট্রিংয়ের মাঝখানে থাকে, উপরের রেজেক্সগুলি তাদের চারপাশের সমস্ত সাদা স্থান সরিয়ে ফেলবে। এটি সম্ভবত ভাল না।
নাইজেল জনসন

4
এর বিপরীতে কীভাবে করবেন? আমি (example)কেবল চাই
কার্টে

কাজ নাও যদি ভালো কিছু আছে: এটা একটু তছনছ (আপ (ডান)) কিন্তু ঘটনাচক্রে :)
TigrouMeow

29
var str = "Hello, this is Mike (example)";

alert(str.replace(/\s*\(.*?\)\s*/g, ''));

এটি প্রথম বন্ধনীর আগে এবং পরে অতিরিক্ত শ্বেত স্থানকে প্রতিস্থাপন করবে।


8

চেষ্টা করুন / \([\s\S]*?\)/g

কোথায়

(স্পেস) অক্ষরটির সাথে (স্পেস) আক্ষরিক মিল রয়েছে

\(অক্ষরটির সাথে (আক্ষরিক মিল রয়েছে

[\s\S]কোনও চরিত্রের সাথে \sমেলে ( কোনও সাদা স্থানের অক্ষরের সাথে \Sমেলে এবং কোনও অ-সাদা অংশের অক্ষরের সাথে মেলে)

*? শূন্য এবং সীমাহীন সময়ের মধ্যে মেলে

\)অক্ষরটির সাথে )আক্ষরিক মিল রয়েছে

g বিশ্বব্যাপী মেলে

কোড উদাহরণ:

var str = "Hello, this is Mike (example)";
str = str.replace(/ \([\s\S]*?\)/g, '');
console.log(str);
.as-console-wrapper {top: 0}


1

আমি এই সংস্করণটি সব ক্ষেত্রেই সবচেয়ে উপযুক্ত বলে মনে করেছি। এটি সমস্ত সাদা স্থান সরিয়ে দেয় না।

উদাহরণস্বরূপ "ক (পরীক্ষা) বি" -> "এ বি"

"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, " ").trim(); "Hello, this is (example) Mike ".replace(/ *\([^)]*\) */g, " ").trim();


সাবধানতা trimসর্বজনীনভাবে সমর্থিত নয়: developer.mozilla.org/en-US/docs/Web/JavaScript/References/… , কমপক্ষে এটি 2015 সালে ছিল না ... 2017 সালে এটি অনেক বেশি ভাল দেখাচ্ছে।
ক্রিস্টোফ রাউসি

"এটি (উদাহরণস্বরূপ (এখানে) যা ভাল)" তে ব্যর্থ হয়। অর্থাত্ নেস্ট প্যারেনস!
মার্ক

1

আপনার যদি নেস্টেড বন্ধনীগুলির ভিতরেও পাঠ্য অপসারণ করতে হয় তবে:

        var prevStr;
        do {
            prevStr = str;
            str = str.replace(/\([^\)\(]*\)/, "");
        } while (prevStr != str);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.