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



regular expression شرح (4)

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

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

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

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

https://code.i-harness.com


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


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

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

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

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

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


في ما يلي مثال يبحث عن علامات HTML معينة ؛ لذا من الواضح أن /someregex/.test() تعرض قيمة منطقية:

if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');

يمكنك استخدام 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




match