javascript شرح - تحقق مما إذا كانت السلسلة تتطابق مع regex في JS




regular expression (6)

استخدم طريقة test() :

var string = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(string)) {
    console.log("Valid");
} else {
    console.log("Invalid");
}

أرغب في استخدام JavaScript (يمكن أن يكون مع jQuery) للقيام ببعض التحقق من جانب العميل للتحقق مما إذا كانت السلسلة تتطابق مع regex:

^([a-z0-9]{5,})$

من الناحية المثالية سيكون تعبيرا عاد صوابا أو كاذبا.

أنا مبتدئ جافا سكريبت ، لا match() تفعل ما أحتاج؟ يبدو أن التحقق من ما إذا كان جزء من سلسلة يتطابق مع تعبير عادي ، وليس كل شيء.


استخدم regex.test() إذا كان كل ما تريده هو نتيجة منطقية:

/^([a-z0-9]{5,})$/.test('abc1');   // false

/^([a-z0-9]{5,})$/.test('abc12');   // true

/^([a-z0-9]{5,})$/.test('abc123');   // true

... ويمكنك إزالة () من تعاملك ، نظرًا لأنك لست بحاجة إلى الالتقاط.


استخدم /youregexp/.test(yourString) إذا كنت تريد فقط معرفة ما إذا كانت السلسلة الخاصة بك تطابق regexp.


يمكنك استخدام match() أيضًا:

if (str.match(/^([a-z0-9]{5,})$/)) {
    alert("match!");
}

ولكن يبدو أن test() أسرع كما يمكنك القراءة here .

فرق مهم بين match() و test() :

match() يعمل فقط مع السلاسل ، ولكن test() يعمل أيضًا مع الأعداد الصحيحة.

12345.match(/^([a-z0-9]{5,})$/); // ERROR
/^([a-z0-9]{5,})$/.test(12345);  // true
/^([a-z0-9]{5,})$/.test(null);   // false

// Better watch out for undefined values
/^([a-z0-9]{5,})$/.test(undefined); // true

 let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
 let regexp = /[a-d]/gi;
 console.log(str.match(regexp));

يمكنك الوصول إلى التقاط مجموعات مثل هذا:

var myString = "something format_abc";
var myRegexp = /(?:^|\s)format_(.*?)(?:\s|$)/g;
var match = myRegexp.exec(myString);
console.log(match[1]); // abc

وإذا كانت هناك العديد من التطابقات ، يمكنك تكرارها:

var myString = "something format_abc";
var myRegexp = /(?:^|\s)format_(.*?)(?:\s|$)/g;
match = myRegexp.exec(myString);
while (match != null) {
  // matched text: match[0]
  // match start: match.index
  // capturing group n: match[n]
  console.log(match[0])
  match = myRegexp.exec(myString);
}





javascript regex match