تعبيرات جافا سكريبت - إجبار القضية عند الاستعاضة عن

StackOverflow https://stackoverflow.com/questions/1878934

  •  18-09-2019
  •  | 
  •  

سؤال

هل تدعم JavaScript Regex Standard Case Case عند إجراء بحث / استبدال؟

أنا أدرك بشكل عام خيارات u إلخ. أنا غير قادر على معرفة كيفية القيام بذلك في regex javaScript. ليس لدي حق الوصول إلى رمز JavaScript نفسه لكن البرنامج الذي أستخدمه يسمح بإدخال سلاسل Regex التي تمر عبر محرك Regex نفسه.

هل كانت مفيدة؟

المحلول

إذا فهمت لك بشكل صحيح، لا.

لا يمكنك تقييم JavaScript (لتحويل المباريات إلى الأحرف الكبيرة) من داخل نمط Regex.

أنا فقط أدرك Str.Replace () للتحويل إلى أحرف كبيرة.

نصائح أخرى

تتم مطابقة السلسلة باستخدام تعبيرات منتظمة. ومع ذلك، يهتم باستبدال فقط حول جزء من سلسلة الموضوع التي تستبدلها (والتي يتم تغذيتها من خلال تطابق التعبير العادي)، وهذا فقط استبدال السلسلة المباشرة بناء على ما تعطيه في

var subject = "This is a subject string";

// fails, case-sensitive match by default
subject.replace(/this/, "That"); 

// succeeds, case-insensitive expression using /i modifier, replaces the word "This" with the word "That"
subject.replace(/this/i, "That"); 

الآن، إذا كنت ترغب في التقاط جزء من السلسلة المتطابقة واستخدمها لتغيير الحالة، يمكنك القيام بذلك أيضا باستخدام مجموعات التعبير (الأقواس في تعبيرك):

var subject = "This is a subject string";
var matches = subject.match(/(subject) string/i);
if (matches.length > 0)
{
    // matches[0] is the entire match, or "subject string"
    // matches[1] is the first group match, or "subject"
    subject.replace(matches[1], matches[1].toUpperCase());
    // subject now reads "This is a SUBJECT string"
}

باختصار، قم بعمل مباراة يمكنك التعامل مع حساسية الحالة إذا كنت ترغب في ذلك. القيام بديل بسيط مثل إخباره ما هي السلسلة المباشرة لاستخدامها للاستبدال.

تعبيرات JavaScript العادية حساسة لحالة الأحرف بشكل افتراضي ودعم عدم الحساسية إذا مرت /i علم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top