javascript - যবহ - বাংলায় জাভাস্ক্রিপ্ট



জাভাস্ক্রিপ্ট regex ব্যবহার করার জন্য স্ট্রিং এস্কেপ (1)

সংক্ষিপ্ত 'মি মিষ্টি

function escapeRegExp(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
}

উদাহরণ

escapeRegExp("All of these should be escaped: \ ^ $ * + ? . ( ) | { } [ ]");

>>> "All of these should be escaped: \\ \^ \$ \* \+ \? \. \( \) \| \{ \} \[ \] "

ইনস্টল করুন

পাল্টা escape-string-regexp স্ট্রিং-regexp হিসাবে npm উপলব্ধ

npm install --save escape-string-regexp

বিঃদ্রঃ

এমডিএন দেখুন : জাভাস্ক্রিপ্ট গাইড: নিয়মিত এক্সপ্রেশন

অন্য প্রতীক (~ `! @ # ...) পরিণতি ছাড়া পালিয়ে যেতে পারে, কিন্তু হতে হবে না।

টেস্ট কেস: একটি আদর্শ ইউআরএল

escapeRegExp("/path/to/resource.html?search=query");

>>> "\/path\/to\/resource\.html\?search=query"

দীর্ঘ উত্তর

আপনি যদি উপরের কোডটি ব্যবহার করতে যাচ্ছেন তবে কমপক্ষে আপনার কোডের ডকুমেন্টেশনে এই স্ট্যাক ওভারফ্লো পোস্টে লিঙ্ক করুন যাতে এটি হার্ড-টু-টেস্ট ভুডু দেখতে পাও না।

var escapeRegExp;

(function () {
  // Referring to the table here:
  // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/regexp
  // these characters should be escaped
  // \ ^ $ * + ? . ( ) | { } [ ]
  // These characters only have special meaning inside of brackets
  // they do not need to be escaped, but they MAY be escaped
  // without any adverse effects (to the best of my knowledge and casual testing)
  // : ! , = 
  // my test "[email protected]#$%^&*(){}[]`/=?+\|-_;:'\",<.>".match(/[\#]/g)

  var specials = [
        // order matters for these
          "-"
        , "["
        , "]"
        // order doesn't matter for any of these
        , "/"
        , "{"
        , "}"
        , "("
        , ")"
        , "*"
        , "+"
        , "?"
        , "."
        , "\\"
        , "^"
        , "$"
        , "|"
      ]

      // I choose to escape every character with '\'
      // even though only some strictly require it when inside of []
    , regex = RegExp('[' + specials.join('\\') + ']', 'g')
    ;

  escapeRegExp = function (str) {
    return str.replace(regex, "\\$&");
  };

  // test escapeRegExp("/path/to/res?search=this.that")
}());

সম্ভাব্য ডুপ্লিকেট:
জাভাস্ক্রিপ্ট একটি RegExp.escape ফাংশন আছে?

আমি ব্যবহারকারী ইনপুট উপর ভিত্তি করে একটি জাভাস্ক্রিপ্ট regex নির্মাণ করার চেষ্টা করছি:

function FindString(input) {
    var reg = new RegExp('' + input + '');
    // [snip] perform search
}

কিন্তু ব্যবহারকারী ইনপুট একটি আছে যখন regex সঠিকভাবে কাজ করবে না ? অথবা * কারণ তারা রেজেক্স বিশেষ হিসাবে ব্যাখ্যা করা হয়। প্রকৃতপক্ষে, যদি ব্যবহারকারী একটি ভারসাম্যহীন রাখে ( অথবা [ তাদের স্ট্রিংয়ে, রেজেক্স এমনকি বৈধ নয়।

Regex ব্যবহার করার জন্য সমস্ত বিশেষ অক্ষর সঠিকভাবে পালাতে জাভাস্ক্রিপ্ট ফাংশন কি?






escaping