ম্যাচ করা গোষ্ঠীর রেফারেন্স সহ জাভাস্ক্রিপ্ট প্রতিস্থাপন করবেন?


228

আমার মতো স্ট্রিং রয়েছে hello _there_। আমি জাভাস্ক্রিপ্ট ব্যবহার করে যথাক্রমে দুটি <div>এবং আন্ডারস্কোর প্রতিস্থাপন করতে চাই । আউটপুট (অতএব) দেখতে হবে । স্ট্রিংয়ে একাধিক জোড়া আন্ডারস্কোর থাকতে পারে।</div>hello <div>there</div>

আমি কি খোঁজ করছি একটি উপায় হয় পারেন প্রতিটি ম্যাচ, পথ রুবি এটা আছে উপর একটি ফাংশন সঞ্চালন করুন:

"hello _there_".gsub(/_.*?_/) { |m| "<div>" + m[1..-2] + "</div>" }

বা কোনও মিলিত গোষ্ঠীটিকে আবার উল্লেখ করতে সক্ষম হোন এটি যেভাবে রুবিতে করা যায়:

"hello _there_".gsub(/_(.*?)_/, "<div>\\1</div>")

কোন ধারণা বা পরামর্শ?

উত্তর:


384
"hello _there_".replace(/_(.*?)_/, function(a, b){
    return '<div>' + b + '</div>';
})

ওহ, বা আপনিও করতে পারেন:

"hello _there_".replace(/_(.*?)_/, "<div>$1</div>")

10
জাভাস্ক্রিপ্ট $1পরিবর্তে ব্যবহার করে \1? কেউ কি ডকুমেন্টেশনের লিঙ্ক সরবরাহ করবেন?
ডেভেলওয়াল

3
replacementValueএকটি ফাংশন হতে পারে এবং এটি ক্যাচ গ্রুপগুলির উপর ভিত্তি করে বিভিন্ন যুক্তি পাস করা হয়? অ্যামেজিং!
ডেভেলওয়াল

4
আমি \ 1 টি কাজ করেছি কিন্তু 1 ডলারটি আমি RegExp প্রকরণটি ব্যবহার না করে তা পাইনি: developer.mozilla.org/en-US/docs/Web/JavaScript/References/…
jsh

1
@ ক্যালকুলেটরফলাইন "রিজেক্স নিজেই" বললে কোনটি সনাক্ত করতে পারে না, কারণ কেউ এই প্রতিস্থাপনের জন্য একটি রেজেক্স ব্যবহার করার চেষ্টা করছে। অনেক এই কাজ করতে চেষ্টা মানুষ হতে হবে: "hello _there_".replace(/_(.*?)_/, /<div>\1<\/div>/)
স্টুয়ার্ট

2
ফাংশন সম্পর্কিত নথিপত্র বিকাশকারীকে
করুন.মোজিলা.আর.ইন


7

দ্বারা প্রতিস্থাপন স্ট্রিং এবং প্রতিস্থাপন প্যাটার্ন জন্য $। এখানে একটি জীবনবৃত্তান্ত:

এখানে চিত্র বর্ণনা লিখুন

ডক লিঙ্ক: এখানে

"hello _there_".replace(/_(.*?)_/g, "<div>$1</div>")



বিঃদ্রঃ:

আপনি যদি $প্রতিস্থাপনের স্ট্রিং ব্যবহার করতে চান তবে $$। Vscode স্নিপেট সিস্টেমের মতোই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.