5 مكتبات JavaScript للعمل مع السلاسل

يمكن أن يكون العمل مع الأوتار صعبًا لأنه ينطوي على حل العديد من المشاكل المتنوعة. على سبيل المثال ، لإلقاء سلسلة ببساطة على نمط الجمل ، تحتاج إلى بضعة أسطر من التعليمات البرمجية:

function camelize(str) {
  return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
    if (+match === 0) re
turn ""; //  if (/\s+/.test(match))  
    return index === 0 ? match.toLowerCase() : match.toUpperCase();
  });
}

هذه القطعة من الكود ، بالمناسبة ، في دور الإجابة على سؤال جلب الأوتار إلى أسلوب "الجمل" ، جمعت أكبر عدد من الأصوات على Stack Overflow. ولكن حتى أنه غير قادر على معالجة مثل هذا الخط بشكل صحيح ، على سبيل المثال:

---Foo---bAr---


نتيجة معالجة سلسلة --- Foo --- bAr ---

ولكن ماذا لو كانت هذه الأوتار بحاجة إلى معالجة؟ يمكنك إصلاح هذا المثال ، أو يمكنك اللجوء إلى مساعدة المكتبات المتخصصة. إنها تبسط تنفيذ الخوارزميات المعقدة ، بالإضافة إلى تزويد المبرمج بأدوات أكثر مرونة وتنوعًا من المثال أعلاه. قد يعني هذا أنه لحل مهمة صعبة معينة ، ستحتاج إلى استدعاء طريقة واحدة فقط.

لنتحدث عن العديد من مكتبات JavaScript المصممة للعمل مع السلاسل.

1. String.js


المكتبة string.js، أو ببساطة S، مكتبة جافا سكريبت صغيرة (أقل من 5 كيلوبايت صغيرة ومضغوطة) يمكن استخدامها في متصفح وفي Node.js. يعطي المبرمج مجموعة كبيرة من الأساليب للعمل مع الأوتار. هذه هي طرق الكائن string.js، والتي ، للراحة ، تشمل طرق السلسلة القياسية. الكائن string.jsهو نوع من الغلاف للسلاسل العادية.

▍ التثبيت


لتثبيت المكتبة string.js، فقط استخدم الأمر التالي:

npm i string

methods طرق جديرة بالملاحظة


بين الطريقة


between(left, right)تستخلص الطريقة من السلسلة السلسلة الفرعية الموجودة بين السطور leftو right. على سبيل المثال ، يمكنك استخدام هذه الطريقة لاستخراج العناصر بين علامتي HTML:

var S = require('string');
S('<a>This is a link</a>').between('<a>', '</a>').s 
// 'This is a link'

طريقة الجمال


تقوم الطريقة camelize()بإزالة المسافات والشرطات السفلية والشرطات من السلسلة المعالجة وتحويل هذه السلسلة إلى نمط "جمل". يمكن استخدام هذه الطريقة لحل المشكلة المذكورة في بداية المادة.

var S = require('string');
S('---Foo---bAr---').camelize().s; 
//'fooBar'

طريقة أنسنة


humanize()تجلب الطريقة السلسلة المعالجة إلى نموذج قابل للقراءة. إذا كان يجب تنفيذ شيء من هذا القبيل من البداية ، فيجب كتابة بضعة أسطر من التعليمات البرمجية.

var S = require('string');
S('   capitalize dash-CamelCase_underscore trim  ').humanize().s
//'Capitalize dash camel case underscore trim'

طريقة StripPunctuation


stripPunctuation()تزيل الطريقة علامات الترقيم والأحرف الخاصة المختلفة مثل العلامات النجمية والأقواس المربعة من السلسلة. إذا قمت بإنشاء مثل هذه الوظيفة بنفسك - فهناك خطر كبير من نسيان أي شخصية يجب معالجتها.

var S = require('string');
S('My, st[ring] *full* of %punct)').stripPunctuation().s; 
//My string full of punct

هنا يمكنك العثور على معلومات أكثر تفصيلاً حول هذه المكتبة وأساليبها.

2. فوكا


Vocaتقدم لنا مكتبة JavaScript ميزات قيّمة تعزز قابلية استخدام السلاسل. من بين ميزاته ما يلي:

  • تغيير حالة الأحرف.
  • يحذف الأحرف المحددة في بداية ونهاية المخطط الزمني.
  • إضافة سلسلة إلى طول معين.
  • تحويل سلسلة إلى سلسلة ، الكلمات مفصولة بواصلة.
  • كتابة خيط بالحروف اللاتينية.
  • تجميع الخطوط حسب الأنماط.
  • تقليم الأوتار إلى الطول المحدد
  • الهروب من الأحرف الخاصة لـ HTML.

يسمح التصميم المعياري للمكتبة ، إذا لزم الأمر ، بتحميل المكتبة بأكملها وليس الوظائف الفردية. هذا يسمح لك بتحسين حزم التطبيقات باستخدام هذه المكتبة. يتم اختبار رمز المكتبة بالكامل وتوثيقه جيدًا وصيانته جيدًا.

▍ التثبيت


للتثبيت ، قم Vocaبتشغيل الأمر التالي:

npm i voca

methods طرق جديرة بالملاحظة


طريقة CamelCase


camelCase()تحول الطريقة السلسلة التي تم تمريرها إليها إلى سلسلة مكتوبة بأسلوب "الجمل".

var v = require('voca');
v.camelCase('foo Bar');
// => 'fooBar'

v.camelCase('FooBar');
// => 'fooBar'

v.camelCase('---Foo---bAr---');
// => 'fooBar'

طريقة لاتينية


latinize()ترجع الطريقة نتيجة تحويل السلسلة التي تم تمريرها إليها إلى سلسلة مكتوبة بأحرف لاتينية.

var v = require('voca');
v.latinise('cafe\u0301'); // or 'café'
// => 'cafe'

v.latinise('août décembre');
// => 'aout decembre'

v.latinise('   ');
// => 'kak prekrasen etot mir'

طريقة IsAlphaDigit


isAlphaDigit()ترجع الطريقة trueإذا كانت السلسلة التي تم تمريرها إليها تحتوي على أحرف أبجدية رقمية فقط.

var v = require('voca');
v.isAlphaDigit('year2020');
// => true

v.isAlphaDigit('1448');
// => true

v.isAlphaDigit('40-20');
// => false

طريقة العد


countWords()ترجع الطريقة عدد الكلمات في السلسلة التي تم تمريرها إليها.

var v = require('voca');
v.countWords('gravity can cross dimensions');
// => 4

v.countWords('GravityCanCrossDimensions');
// => 4

v.countWords('Gravity - can cross dimensions!');
// => 4

طريقة EscapeRegExp


تقوم الطريقة escapeRegExp()بإرجاع سلسلة استنادًا إلى السلسلة التي تم تمريرها إليها ، حيث يتم الهروب من الأحرف الخاصة.

var v = require('voca');
v.escapeRegExp('(hours)[minutes]{seconds}');
// => '\(hours\)\[minutes\]\{seconds\}'

Vocaيمكن العثور على تفاصيل حول المكتبة هنا

3. Anchorme.js


هذه مكتبة جافا سكريبت مدمجة وسريعة للعثور على عناوين URL وعناوين البريد الإلكتروني في النص ولتحويلها إلى روابط تشعبية عاملة. فيما يلي خصائصه الرئيسية:

  • حساسية عالية ، معدل إيجابي كاذب منخفض.
  • التحقق من الروابط وعناوين البريد الإلكتروني من قائمة IANA الكاملة.
  • التحقق من صحة أرقام المنافذ (إن وجدت).
  • التحقق من عناوين IP (إن وجدت).
  • دعم عناوين URL المكتوبة بأحرف غير الأحرف اللاتينية.

▍ التثبيت


للتثبيت ، قم anchorme.jsبتشغيل الأمر التالي:

npm i anchorme

▍ استخدم


import anchorme from "anchorme"// 
//var anchorme = require("anchorme").default;
const input = "some text with a link.com"const resultA = anchorme(input);
//some text with a <a href="http://link.com">link.com</a>

يمكن تكوين معالجة السلسلة باستخدام كائن مع معلمات يمكن تمريرها إلى المكتبة.

→ التفاصيل anchorme.jsيمكن العثور عليها هنا

4. السلسلة السفلية


المكتبة underscore.stringهي امتداد underscore.jsللعمل مع السلاسل ، والتي يمكن استخدامها بشكل منفصل عن underscore.js. وقد تأثر هذه المكتبة التي كتبها أفكار المشاريع prototype.js، right.jsو underscore.js.

توفر هذه المكتبة للمطور العديد من الوظائف المفيدة المصممة للعمل مع السلاسل. هنا بعض منهم:

  • تكبير () ؛
  • نظيف () ؛
  • يشمل ()؛
  • العد () ؛
  • escapeHTML () ؛
  • unescapeHTML () ؛
  • إدراج ()؛
  • لصق او جمع ()؛
  • ابدا ب ()؛
  • مع () ؛
  • العنوان () ؛
  • تقليم ()؛
  • اقتطاع ().

▍ التثبيت


إليك الأمر الذي يمكنك من خلاله تثبيت المكتبة باستخدام:

npm i underscore.string

methods طرق جديرة بالملاحظة


طريقة NumberFormat


تم numberFormat()تصميم الطريقة لتنسيق الأرقام.

var _ = require("underscore.string");
_.numberFormat(1000, 3)
// "1,000.000"
_.numberFormat(123456789.123, 5, '.', ',');
// "123,456,789.12300"

طريقة Levenshtein


levenshtein()ترجع الطريقة مسافة Levenshtein بين خطين. اقرأ المزيد عن الخوارزمية المستخدمة في هذه الطريقة هنا .

var _ = require("underscore.string");
_.levenshtein('kitten', 'kittah');
// 2

طريقة الفرم


chop()تقسم الطريقة السلسلة الممررة إليها إلى أجزاء.

var _ = require("underscore.string");
_.chop('whitespace', 3);
// ['whi','tes','pac','e']

هنا صفحة حيث يمكنك العثور على تفاصيل حول المكتبةunderscore.string

5. سترينجز


السمة الرئيسية للمكتبة stringzهي أنها يمكن أن تعمل مع أحرف Unicode.

إذا تم تنفيذ الكود التالي ، بدون استخدام أي مكتبات ، اتضح أن طول السلسلة هو 2.



الشيء هو أن طريقة JS-string تقوم length()بإرجاع عدد نقاط التعليمات البرمجية للسلسلة ، وليس عدد الأحرف. في الواقع، بعض الشخصيات في نطاقات 010000–03FFFFو 040000–10FFFFيمكن استخدام ما يصل إلى 4 بايت (32 بت) في نقطة رمز، ولكن هذا لا يغير الجواب: من أجل تمثيل بعض الأحرف، تحتاج إلى أكثر من 2 بايت، ونتيجة لذلك يتم تمثيلها من قبل نقطة رمز أكثر من واحد.

إليك المادة الخاصة بمشكلات معالجة أحرف Unicode في JavaScript.

▍ التثبيت


لتثبيت هذه المكتبة ، تحتاج إلى الأمر التالي:

npm i stringz

methods طرق جديرة بالملاحظة


طريقة الحد


limit()يلقي الأسلوب السلسلة إلى الطول المحدد.



طريقة ToArray


toArray()تحول الطريقة سلسلة إلى صفيف.



إليك صفحة مستودع المكتبة

وما هي الأدوات المساعدة التي تستخدمها للعمل مع السلاسل؟

نذكرك بأننا نواصل مسابقة التنبؤ التي يمكنك من خلالها الفوز بجهاز iPhone جديد تمامًا. لا يزال هناك وقت لاقتحامها ، وإجراء توقعات أكثر دقة حول القيم الموضعية.


All Articles