javascript - tutorial - w3schools bootstrap




জেএস রেজেক্স, কীভাবে বন্দী দলকে প্রতিস্থাপন করবেন? (2)

একটি সমাধান পূর্ববর্তী এবং নিম্নলিখিত পাঠ্য জন্য ক্যাপচার যোগ করা হয়:

str.replace(/(.*value="\w+)(\d+)(\w+".*)/, "$1!NEW_ID!$3")

ঠিক আছে প্রশ্ন বেশ সহজ। আমি এই মত একটি স্ট্রিং খুঁজছেন:

name="some_text_0_some_text"

আমি উপরের স্ট্রিং আগে এবং পরে এইচটিএমএল কোড আছে।

এখন আমি 0 টি প্রতিস্থাপনের মতো কিছু চাই: NEW_ID!

তাই আমি একটি সহজ regex তৈরি:

.*name="\w+(\d+)\w+".*

কিন্তু আমি একচেটিয়াভাবে বন্দী ব্লক প্রতিস্থাপন কিভাবে দেখতে না।

অন্য কোন স্ট্রিংয়ের মতো ($ 1) একটি ক্যাপিটাল ফলাফল প্রতিস্থাপন করার উপায় আছে কি?

ফলাফল হবে:

name="some_text_!NEW_ID!_some_text"

আপনার সাহায্যের জন্য ধন্যবাদ :)


ম্যাথিউয়ের উত্তরের সামান্য উন্নতি শেষ ক্যাপচারিং গ্রুপের পরিবর্তে একটি চেহারা হতে পারে:

.replace(/(\w+)(\d+)(?=\w+)/, "$1!NEW_ID!");

অথবা আপনি দশমিকের উপর বিভক্ত এবং আপনার নতুন আইডি এর সাথে যোগদান করতে পারেন:

.split(/\d+/).join("!NEW_ID!");

উদাহরণ / এখানে বেঞ্চমার্ক: https://codepen.io/jogai/full/oyNXBX








regex