এই নিয়মিত অভিব্যক্তিতে আমি নেতিবাচক দশমিক সংখ্যাগুলি কীভাবে অন্তর্ভুক্ত করব?


90

এই নিয়মিত প্রকাশের মাধ্যমে আমি কীভাবে নেতিবাচক সংখ্যাগুলির সাথে মিল করব? এই রেজেক্সটি ইতিবাচক মানগুলির সাথে সূক্ষ্মভাবে কাজ করে, তবে আমি এটিতে নেতিবাচক মানগুলি যেমন -10, -125.5 ইত্যাদির জন্যও অনুমতি দিতে চাই want

^[0-9]\d*(\.\d+)?$

ধন্যবাদ


4
@ ড্যানপুজে আপনি কি পোস্ট করেছেন রেজেক্স দেখেননি?
নোলোনার


আমি শুরুতে যোগ করার চেষ্টা করেছি [-] তবে এটি কার্যকর হয়নি। আমি ছোট পরিবর্তনগুলির সংমিশ্রণটিও ব্যবহার করেছি
ব্যবহারকারী 1786107

এটি চেষ্টা করুন? -? \ d + (\। \ d +)? $
সিভা

@ ডানপুজে আপনার কথাগুলি আলোচনায় কিছুই যোগ করেনি এবং নির্দয় হয়
ওয়াসাদামো

উত্তর:


176

আপনার শুরুতে একটি alচ্ছিক হাইফেন যুক্ত করে যুক্ত করা উচিত -?( ?এটি একটি কোয়ান্টিফায়ার যার অর্থ এক বা শূন্য ঘটনা ):

^-?[0-9]\d*(\.\d+)?$

আমি এই মানগুলি দিয়ে রুবুলারে এটি যাচাই করেছি:

10.00
-10.00

এবং উভয়ই প্রত্যাশার সাথে মিলছে।


4
আপনার বিন্দু থেকে বাঁচতে হবে, অর্থাৎ^-?[0-9]\d*(\.\d+)?$
অ্যালেক্স শেস্তেরভ

14
আপনি যদি ব্যবহার করতে পারেন তবে স্পষ্টভাবে সম্ভাব্য সংখ্যাগুলি (+10.00, কিছু অ্যাপ্লিকেশনে ব্যবহৃত) ক্যাপচার করার সম্ভাবনা রয়েছে^[-+]?[0-9]\d*(\.\d+)?$
Cemafor

129

কিছু নিয়মিত প্রকাশের উদাহরণ:

ইতিবাচক পূর্ণসংখ্যা :

^\d+$

Gণাত্মক পূর্ণসংখ্যা :

^-\d+$

পূর্ণসংখ্যা :

^-?\d+$

ধনাত্মক সংখ্যা :

^\d*\.?\d+$

নেতিবাচক সংখ্যা :

^-\d*\.?\d+$

ধনাত্মক সংখ্যা বা নেতিবাচক সংখ্যা :

^-?\d*\.{0,1}\d+$

ফোন নম্বর :

^\+?[\d\s]{3,}$

কোড সহ ফোন :

^\+?[\d\s]+\(?[\d\s]{10,}$

বছর 1900-2099 :

^(19|20)[\d]{2,2}$

তারিখ (ডিডি মিমি ইয়ে, ডি / এম / ইয়ে, ইত্যাদি):

^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$

আইপি ভি 4 :

^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$

11

আমি জানি না কেন আপনার প্রথমে এটি দরকার [0-9]

চেষ্টা করুন:

^-?\d*(\.\d+)?$

হালনাগাদ

আপনি যদি নিশ্চিত হতে চান যে স্থানটিতে আপনার একটি সংখ্যা রয়েছে, তবে ব্যবহার করুন

^-?\d+(\.\d+)?$

4
সম্ভবত কেবল সেই জায়গাতে একটি অঙ্কের গ্যারান্টি দেওয়ার জন্য, ^-?\d+(\.\d+)?$যদি এটি হয় তবে কাজ করা উচিত
Cemafor

সর্বাধিক উপযুক্ত উত্তর। আমি মনে করি না [0-9] গ্রহণযোগ্য উত্তরে প্রদর্শিত হিসাবে প্রয়োজনীয়।
উজুমাকিএল

3

আপডেট (13/08/2014): এটি ইতিবাচক এবং নেতিবাচক সংখ্যার জন্য সেরা কোড =)

(^-?0\.[0-9]*[1-9]+[0-9]*$)|(^-?[1-9]+[0-9]*((\.[0-9]*[1-9]+[0-9]*$)|(\.[0-9]+)))|(^-?[1-9]+[0-9]*$)|(^0$){1}

আমি এই সংখ্যাগুলি দিয়ে চেষ্টা করেছি এবং ভাল কাজ করেছি:

-1234454.3435
-98.99
-12.9
-12.34
-10.001
-3
-0.001
-000
-0.00
0
0.00
00000001.1
0.01
1201.0000001
1234454.3435
7638.98701

পরিবর্তন -*করার জন্য -?কারণ এটি মিলে যায় -------------
টোটো

আমি কিছু অতিরিক্ত পরিবর্তন তৈরি করেছি এবং এখন ঠিকঠাক কাজ করেছি। দয়া করে এটি পরীক্ষা করুন =)
পাচো জুয়েগা


1

এটি ইতিবাচক এবং negativeণাত্মক উভয় পূর্ণসংখ্যার অনুমতি দেবে

বৈধতা এক্সপ্রেশন = "^ -? [0-9] \ d * (\ d +)? $"


1

জ্যাঙ্গো ইউআরএলে রেজেেক্স সম্পর্কে আমার কিছু পরীক্ষা-নিরীক্ষা রয়েছে, যা নেতিবাচক থেকে ধনাত্মক সংখ্যার জন্য প্রয়োজনীয়

^(?P<pid>(\-\d+|\d+))$

আসুন আমরা এই উপর দৃষ্টি নিবদ্ধ করা এর (\-\d+|\d+)অংশ এবং উপেক্ষা অন্যদের, এই সেমিকোলন |উপায়ে বা Regex করুন, তারপরে নেতিবাচক মান এই সঙ্গে ম্যাচ হবে \-\d+অংশ, এবং এই মধ্যে ইতিবাচক মান\d+



1

যদি আপনার কাছে এটি থাকে val="-12XXX.0abc23"এবং আপনি কেবল দশমিক সংখ্যা বের করতে চান, এই ক্ষেত্রে এই রেজেক্স ( ^-?[0-9]\d*(\.\d+)?$) আপনাকে এটি অর্জনে সহায়তা করবে না।
এটি সঠিক সনাক্তকরণ রেজেক্স সহ সঠিক কোড:

var val="-12XXX.0abc23";
val = val.replace(/^\.|[^-?\d\.]|\.(?=.*\.)|^0+(?=\d)/g, '');
console.log(val);





0

সংখ্যার জন্য নিয়মিত প্রকাশ, decচ্ছিক দশমিক পয়েন্ট, ,চ্ছিক নেতিবাচক:

^-?(\d*\.)?\d+$;

negativeণাত্মক পূর্ণসংখ্যার জন্য দশমিকের সাথে negativeণাত্মক হয়


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