বর্ণমালা, ড্যাশ এবং আন্ডারস্কোর তবে কোনও স্পেস নেই নিয়মিত এক্সপ্রেশন জাভাস্ক্রিপ্ট পরীক্ষা করে


92

একটি নিয়মিত অভিব্যক্তি বিরুদ্ধে ইনপুট চেক করার চেষ্টা করা।

ক্ষেত্রটি কেবলমাত্র বর্ণানুক্রমিক অক্ষর, ড্যাশ এবং আন্ডারস্কোরগুলিকে অনুমতি দেয় এবং স্থান ফাঁকাতে দেওয়া উচিত নয়।

তবে নীচের কোডটি ফাঁকা স্থান দেয়।

আমি কী মিস করছি?

var regexp = /^[a-zA-Z0-9\-\_]$/;
var check = "checkme";
if (check.search(regexp) == -1)
    { alert('invalid'); }
else
    { alert('valid'); }

4
আমি নীচে অ্যান্ডি ই এর উত্তর পছন্দ করি। এছাড়াও, আপনি দ্রুত রেজেক্স সম্পাদনার জন্য gskinner.com/RegExr চেকআউট করতে চাইতে পারেন । এটা ... বেশ মিষ্টি।
পিক্সেলবিবি

উত্তর:


155

তবে নীচের কোডটি ফাঁকা স্থান দেয়।

না, তা হয় না। তবে এটি কেবল 1 দৈর্ঘ্যের ইনপুটটিতে মিলবে will এর চেয়ে বড় বা সমান দৈর্ঘ্যের ইনপুটগুলির জন্য আপনার +নিম্নলিখিত অক্ষর শ্রেণিটি প্রয়োজন:

var regexp = /^[a-zA-Z0-9-_]+$/;
var check = "checkme";
if (check.search(regexp) === -1)
    { alert('invalid'); }
else
    { alert('valid'); }

মনে রাখবেন যে উভয়ই -(এই উদাহরণে) বা _পলায়নের দরকার নেই।


16

আপনি কেবল বুলিয়ান মানতে আগ্রহী হলে আপনার স্ট্রিং.ম্যাচ ব্যবহার না করে স্ট্রিং.সার্চ ( /abc/.test("abcd")) এর পরিবর্তে RegExp.prototype.test (ie ) ব্যবহার করা উচিত নয় use অ্যান্ডি ই এর উত্তরে বর্ণিত হিসাবে আপনাকে নিজের চরিত্রের শ্রেণীর পুনরাবৃত্তি করতে হবে:

var regexp = /^[a-zA-Z0-9-_]+$/;

8
আসলে আপনি RegExp.prototype.testযদি বুলিয়ান সম্পর্কে আগ্রহী হন তবে আপনার পদ্ধতিটি ব্যবহার করা উচিত ।
অ্যান্ডি ই

7

এই বাক্য গঠনের উত্তরগুলির চেয়ে একটু বেশি সংক্ষিপ্ত যা এই স্থানে পোস্ট করা হয়েছে এবং একই ফলাফল অর্জন করেছে:

let regex = /^[\w-]+$/;

4
আপনার উত্তরটি আন্তর্জাতিক অক্ষরের জন্যও কাজ করে তা একটি নোট যুক্ত করার বিষয়ে বিবেচনা করুন। আমি জাভাস্ক্রিপ্টে নিশ্চিত নই, তবে ব্যাশে এটি কাজ করে: cho প্রতিধ্বনি "abc-def däf_ghi" | egrep -wo '(\ w | - | _) +'
ইভান ওগাই

4

বোকা ত্রুটি পেয়েছে। সুতরাং কেউ এটি দরকারী যদি এখানে পোস্ট করুন

  1. -\._ - অর্থ হাইফেন, বিন্দু এবং আন্ডারস্কোর
  2. \.-_ - বিন্দু থেকে আন্ডারস্কোর পর্যন্ত সমস্ত চিহ্নের অর্থ

# 2 শুধুমাত্র তখনই প্রয়োগ হয় যদি এটি বর্গাকার বন্ধনীতে থাকে [অর্থাৎ \। _ _] বিন্দু থেকে আন্ডারস্কোর পর্যন্ত পরিসরের একটি গৃহস্থালি। বর্গাকার বন্ধনী ব্যতীত উভয়ই তিনটি চিহ্নের অনুক্রম এবং এগুলি কেবল ক্রমের সাথে পৃথক।
erict

1

আন্ডারস্কোর থেকে বাঁচবেন না কিছুটা হতাশার কারণ হতে পারে।


4
তুমি কেন এটা বললে? আমি আন্ডারস্কোর না জানেন প্রয়োজন পলান করা, কিন্তু আমি শুনিনি \_ঘটাচ্ছে সমস্যা, জাভাস্ক্রিপ্ট বা অন্য কোন Regex গন্ধ।
অ্যালান মুর

4
খাঁটি জল্পনা। এক্সপ্রেশনটি অন্যথায় ভাল লাগছিল এবং কোনও অবস্থাতেই ফাঁকা জায়গাগুলির উচিত নয়, তবে আমি এটি কেবল সেখানে ফেলে দিয়েছি। সম্ভবত একটি মন্তব্য একটি উত্তর ছিল না।
ডেভিড ফেলস


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