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


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.