জাভাস্ক্রিপ্ট বিভক্ত রেজেক্স প্রশ্ন


116

হ্যালো আমি যা চেষ্টা করছিলাম যা আমি জাভাস্ক্রিপ্টে বরং একটি সহজ রেগেক্স হিসাবে ভেবেছিলাম তবে তা আমাকে প্রচুর কষ্ট দিচ্ছে। আমি জাভাস্ক্রিপ্টের মাধ্যমে '-', '।', '/' এবং '' দ্বারা বিভক্ত হয়ে একটি তারিখ বিভক্ত করার ক্ষমতা চাই।

var date = "02-25-2010";
var myregexp2 = new RegExp("-."); 
dateArray = date.split(myregexp2);

এটির জন্য সঠিক রেজেক্স কী এবং সমস্ত সহায়তা দুর্দান্ত হবে।

উত্তর:


174

আপনার যে অক্ষরগুলি আপনি একটি অক্ষর শ্রেণিতে বিভক্ত করতে চান সেগুলি রাখতে হবে , যা নিয়মিত অভিব্যক্তি ইঞ্জিনকে "এই চরিত্রগুলির মধ্যে একটিও একটি মিল" বলে দেয়। আপনার উদ্দেশ্যগুলির জন্য, এটি দেখতে এই রকম হবে:

date.split(/[.,\/ -]/)

যদিও ড্যাশগুলি রেঞ্জ স্পেসিফায়ার হিসাবে অক্ষর শ্রেণীর বিশেষ অর্থ (যেমন এর [a-z]অর্থ একই [abcdefghijklmnopqrstuvwxyz]) তবে যদি আপনি এটি ক্লাসে শেষ জিনিস হিসাবে রাখেন তবে এটি আক্ষরিক ড্যাশ বোঝাতে নেওয়া হয় এবং এড়াতে হবে না।

আপনার প্যাটার্নটি কেন কাজ করে না তা ব্যাখ্যা করার জন্য, /-./নিয়মিত এক্সপ্রেশন ইঞ্জিনকে কোনও অক্ষর অনুসারে আক্ষরিক ড্যাশ চরিত্রের সাথে মেলে ধরতে বলে (নিয়মিত এক্সপ্রেশনগুলিতে বিন্দুগুলি ওয়াইল্ডকার্ড অক্ষর)। "02-25-2010" এর সাথে এটি প্রতিবার বিভক্ত হবে "-2", কারণ ড্যাশ ম্যাচগুলি এবং ডট মিলছে "2"।


3
এছাড়াও আপনি জানাতে পারেন যে একটি বিন্দু নেই একটি অক্ষর ক্লাসের কোনো বিশেষ অর্থ ভিতরে আছে - পরিবর্তে (যা কোন মানে না) একটি ওয়াইল্ডকার্ড অক্ষর হিসাবে অভিনয় এর, এটি একটি আক্ষরিক হিসাবে কাজ করে।
— ববি জ্যাক 10

11

বা কেবল (সংখ্যা ছাড়া কিছু):

date.split(/\D/);

6

আপনি শুধু ব্যবহার করতে পারে

date.split(/-/);

অথবা

date.split('-');

1
আপনার কোডের আগে একটি লাইন বিরতি দিন এবং 4 টি স্পেস এটিকে সঠিকভাবে ফর্ম্যাট করবে।
— ব্র্যান্ডন

5

তারপরে এটিকে সংখ্যা ছাড়া অন্য কিছুতে বিভক্ত করুন:

date.split(/[^0-9]/);

3

বলুন আপনার স্ট্রিংটি হ'ল:

let str = `word1
word2;word3,word4,word5;word7
word8,word9;word10`;

আপনি নিম্নলিখিত ডেলিমিটারদের দ্বারা স্ট্রিংকে বিভক্ত করতে চান:

  • কোলন
  • যতিচিহ্নবিশেষ
  • নতুন লাইন

আপনি স্ট্রিংকে এভাবে ভাগ করতে পারেন:

let rawElements = str.split(new RegExp('[,;\n]', 'g'));

শেষ অবধি, আপনাকে অ্যারের উপাদানগুলি ছাঁটাই করতে পারে:

let elements = rawElements.map(element => element.trim());


-1

পরিবর্তে এটি চেষ্টা করুন

date.split (/ \ ওয়াট + + /)


ইতিমধ্যে পোস্ট করা 5+ এর চেয়ে কেন এটি উত্তম উত্তর আপনি ব্যাখ্যা করতে পারেন? এবং এটি আসলে কীভাবে কাজ করে?
— mjuarez

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