উত্তর:
নিয়মিত অভিব্যক্তি:
var numberPattern = /\d+/g;
'something102asdfkj1948948'.match( numberPattern )
এটি '102' এবং '1948948' এর ভিতরে দুটি উপাদান সহ একটি অ্যারে ফিরিয়ে আনবে। আপনার ইচ্ছামতো পরিচালনা করুন। এটি যদি কোনওর সাথে মেলে না তবে এটি বাতিল হয়ে যাবে।
তাদের একত্রিত করার জন্য:
'something102asdfkj1948948'.match( numberPattern ).join('')
ধরে নিই যে আপনি জটিল দশমিকের সাথে মোকাবেলা করছেন না, এটি আমার মনে হয় যথেষ্ট।
d, সুতরাং.match(/\d+/g)
parseInt('987d98sf79s7f9s8f9sf'.match(/\d+/gi).join(''))
আপনি সমস্ত অ-অঙ্কের অক্ষর ( \Dবা [^0-9]) কেড়ে নিতে পারেন :
let word_With_Numbers = 'abc123c def4567hij89'
let word_Without_Numbers = word_With_Numbers.replace(/\D/g, '');
console.log(word_Without_Numbers)
দশমিক ভগ্নাংশ এবং বিয়োগ চিহ্ন সহ সংখ্যার জন্য, আমি এই স্নিপেটটি ব্যবহার করি:
var NUMERIC_REGEXP = /[-]{0,1}[\d]*[.]{0,1}[\d]+/g;
'2.2px 3.1px 4px -7.6px obj.key'.match(NUMERIC_REGEXP)
// return ["2.2", "3.1", "4", "-7.6"]
আপডেট: - 7/9/2018
এমন একটি সরঞ্জাম পেয়েছে যা আপনাকে নিয়মিত অভিব্যক্তিটি চাক্ষুষভাবে সম্পাদনা করার অনুমতি দেয়: জাভাস্ক্রিপ্ট নিয়মিত এক্সপ্রেশন পার্সার এবং ভিজ্যুয়ালাইজার ।
হালনাগাদ:
এখানে আরেকটি রয়েছে যার সাহায্যে আপনি এমনকি ডিবাগার রিজেপ্সপ করতে পারেন: অনলাইন রেইগেক্স পরীক্ষক এবং ডিবাগার ।
হালনাগাদ:
আর একটি: RegExr ।
হালনাগাদ:
আপনি যদি কেবল সংখ্যা চান:
var value = '675-805-714';
var numberPattern = /\d+/g;
value = value.match( numberPattern ).join([]);
alert(value);
//Show: 675805714
এখন আপনি অঙ্কগুলিতে যোগদান করুন
আমার ধারণা আপনি স্ট্রিং থেকে নম্বর (গুলি) পেতে চান। কোন ক্ষেত্রে, আপনি নিম্নলিখিত ব্যবহার করতে পারেন:
// Returns an array of numbers located in the string
function get_numbers(input) {
return input.match(/[0-9]+/g);
}
var first_test = get_numbers('something102');
var second_test = get_numbers('something102or12');
var third_test = get_numbers('no numbers here!');
alert(first_test); // [102]
alert(second_test); // [102,12]
alert(third_test); // null
get_numbers/1, সংখ্যার নয়, স্ট্রিংয়ের একটি অ্যারে প্রদান করে। আপনার উদাহরণস্বরূপ, এটি ফিরে আসবে: * ["102"]* ["102", "12"]* নাল
প্রদত্ত উত্তরগুলি আসলে আপনার প্রশ্নের সাথে মেলে না, যা একটি পিছনের সংখ্যা বোঝায় । এছাড়াও, মনে রাখবেন যে আপনি স্ট্রিং ফিরে পেয়েছেন; আপনার যদি আসলেই কোনও সংখ্যার প্রয়োজন হয় তবে ফলাফলটি নিক্ষেপ করুন:
item=item.replace('^.*\D(\d*)$', '$1');
if (!/^\d+$/.test(item)) throw 'parse error: number not found';
item=Number(item);
আপনি যদি কোনও ওয়েব পৃষ্ঠায় সংখ্যাসূচক আইটেম আইডির সাথে কাজ করে থাকেন তবে আপনার কোডটি কার্যকরভাবে কোনও গ্রহণ করতে পারে Element, তার id(বা এটির সাথে প্রথম পিতামাতাদের id) থেকে সংখ্যাটি বের করে ; যদি আপনি কোনও Eventসহজ হয়ে থাকেন তবে আপনি সম্ভবত এটি Elementথেকেও এটি পেতে পারেন ।
চেন ডাচাও এই মুহুর্তে আইএমও # 3 এর উত্তর হ'ল যদি আপনি কোনও ধরণের সংখ্যা ক্যাপচার করতে চান তবে সঠিক পথ যাবেন তবে নিয়মিত প্রকাশটি এ থেকে সংক্ষিপ্ত করা যেতে পারে:
/[-]{0,1}[\d]*[\.]{0,1}[\d]+/g
প্রতি:
/-?\d*\.?\d+/g
উদাহরণস্বরূপ, এই কোড:
"lin-grad.ient(217deg,rgba(255, 0, 0, -0.8), rgba(-255,0,0,0) 70.71%)".match(/-?\d*\.?\d+/g)
এই অ্যারে উত্পন্ন:
["217","255","0","0","-0.8","-255","0","0","0","70.71"]
আমি একটি এমডিএন রৈখিক গ্রেডিয়েন্ট উদাহরণ বসচার করেছি যাতে এটি সম্পূর্ণরূপে রেজিএক্সপেক্ট পরীক্ষা করে এবং এখানে স্ক্রোল করার প্রয়োজন হয় না। আমি মনে করি যে আমি নেতিবাচক সংখ্যা, দশমিক, ডিগ্রি এবং% এর মতো ইউনিট প্রত্যয়, অসামঞ্জস্য কমা এবং স্থান ব্যবহার এবং "লিন-গ্রেড.এইন্টের লেখার মধ্যে অতিরিক্ত ডট / পিরিয়ড এবং হাইফেন / ড্যাশ অক্ষরের ক্ষেত্রে সমস্ত সম্ভাবনা যুক্ত করেছি I "। যদি আমি কিছু মিস করছি তবে দয়া করে আমাকে জানান। আমি দেখতে পাচ্ছি যে এটি হ্যান্ডেল করে না এটি হ'ল "0..8" এর মতো একটি খারাপভাবে গঠিত দশমিক সংখ্যা।
আপনি যদি সত্যিই সংখ্যার একটি অ্যারে চান, আপনি একই কোডের লাইনে পুরো অ্যারে রূপান্তর করতে পারেন:
array = whatever.match(/-?\d*\.?\d+/g).map(Number);
আমার নির্দিষ্ট কোড, যা সিএসএস ফাংশনগুলি বিশ্লেষণ করছে, বিন্দু / পিরিয়ডের অক্ষরের অ-সংখ্যা ব্যবহার সম্পর্কে চিন্তা করার দরকার নেই, তাই নিয়মিত প্রকাশটি আরও সহজ হতে পারে:
/-?[\d\.]+/g
বিভক্তকরণ এবং রেজেক্স ব্যবহার:
var str = "fooBar0123".split(/(\d+)/);
console.log(str[0]); // fooBar
console.log(str[1]); // 0123
@ সিন্টেলের উত্তর অনুসারে, আপনার যদি কেবলমাত্র অ-সংখ্যাযুক্ত অক্ষর থাকে তবে আপনি একটি পাবেন Uncaught TypeError: Cannot read property 'join' of null।
কোনও মিল না পাওয়া গেলে এটি ত্রুটিগুলি রোধ করে এবং একটি খালি স্ট্রিং ফিরে দেয়:
('something'.match( /\d+/g )||[]).join('')
আপনি যদি বিন্দু / কমা দ্বারা পৃথকীকৃত সংখ্যাও চান তবে:
\d*\.?\d*
অথবা
[0-9]*\.?[0-9]*
আপনার রেজিক্সগুলি পরীক্ষা করতে আপনি https://regex101.com/ ব্যবহার করতে পারেন ।