> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kayanos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# دوال النصوص

> جميع دوال النصوص المسجلة، مع التواقيع والأمثلة للتسميات والمعرفات والرسائل والقوالب.

## متى تستخدم هذه الدوال؟

استخدم هذه الدوال لتنظيف النص وتنسيقه والبحث فيه وتقسيمه وعرضه بأمان. حافظ على المعرفات مستقرة ولا تستبدل قيمة العمل المخزنة بتحويل للعرض.

## طريقة الكتابة

استخدم الدالة بصيغة `trim($.request_reference)`. لا تكون كل دالة متاحة في كل مكان: دوال التحقق ودوال النموذج ودوال قالب المستند لها عقود سياق مختلفة. لا تفترض أن اقتراح المحرر يعني أن الدالة مدعومة وقت التشغيل.

## مرجع الدوال الكامل

### `camelCase`

تحول النص إلى صيغة camelCase المناسبة لمفتاح برمجي أو داخلي.

**التوقيع:** `camelCase(str)`

**مثال:**

```txt theme={null}
camelCase("hello world") // "helloWorld"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | camelCase(...)`.

### `capitalize`

تحول الحرف الأول من النص إلى حرف كبير وتبقي بقية النص كما هي وفق تنفيذ الدالة.

**التوقيع:** `capitalize(str)`

**مثال:**

```txt theme={null}
capitalize("hello") // "Hello"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | capitalize(...)`.

### `charCount`

تعيد عدد المحارف في النص.

**التوقيع:** `charCount(str)`

**مثال:**

```txt theme={null}
charCount("hello") // 5
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | charCount(...)`.

### `count`

تعد مرات ظهور جزء نصي داخل النص.

**التوقيع:** `count(str, search)`

**مثال:**

```txt theme={null}
count("hello", "l") // 2
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | count(...)`.

### `countRegex`

تعد المطابقات التي يحددها تعبير نمطي داخل النص.

**التوقيع:** `countRegex(str, regex, flags?)`

**مثال:**

```txt theme={null}
countRegex("a1b2c3", "\\d", "g") // 3
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | countRegex(...)`.

### `endsWith`

تتحقق من انتهاء النص باللاحقة المعطاة.

**التوقيع:** `endsWith(str, substring)`

**مثال:**

```txt theme={null}
endsWith("hello", "lo") // true
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | endsWith(...)`.

### `escapeHtml`

تهرّب محارف HTML في النص لعرضه كنص لا كوسم.

**التوقيع:** `escapeHtml(str)`

**مثال:**

```txt theme={null}
escapeHtml("<div>hello</div>") // "&lt;div&gt;hello&lt;/div&gt;"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | escapeHtml(...)`.

### `initials`

تستخرج الأحرف الأولى من كلمات النص.

**التوقيع:** `initials(str)`

**مثال:**

```txt theme={null}
initials("John Doe") // "JD"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | initials(...)`.

### `kebabCase`

تحول النص إلى صيغة kebab-case المفصولة بشرطات.

**التوقيع:** `kebabCase(str)`

**مثال:**

```txt theme={null}
kebabCase("hello world") // "hello-world"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | kebabCase(...)`.

### `lines`

تقسم النص إلى قائمة من الأسطر.

**التوقيع:** `lines(str)`

**مثال:**

```txt theme={null}
lines("line1\nline2\nline3") // ["line1", "line2", "line3"]
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | lines(...)`.

### `lower`

تحول أحرف النص إلى أحرف صغيرة.

**التوقيع:** `lower(str)`

**مثال:**

```txt theme={null}
lower("HELLO") // "hello"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | lower(...)`.

### `mask`

تخفي جزءاً من النص وفق إعدادات الإظهار ورمز الإخفاء؛ راجع النتيجة قبل إظهار بيانات حساسة.

**التوقيع:** `mask(str, maskChar, start, end)`

**مثال:**

```txt theme={null}
mask("hello world", "*", 2, 8) // "he******d"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | mask(...)`.

### `matchRegex`

تعيد المطابقات التي يجدها تعبير نمطي في النص.

**التوقيع:** `matchRegex(str, regex, flags?)`

**مثال:**

```txt theme={null}
matchRegex("a1b2", "\\d", "g") // ["1","2"]
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | matchRegex(...)`.

### `normalizeSpace`

توحّد المسافات المتتابعة وتزيل المسافات غير الضرورية من النص.

**التوقيع:** `normalizeSpace(str)`

**مثال:**

```txt theme={null}
normalizeSpace("  hello   world  ") // "hello world"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | normalizeSpace(...)`.

### `pad`

تملأ جانبي النص حتى طول محدد باستخدام محارف معينة.

**التوقيع:** `pad(str, targetLength, padString?)`

**مثال:**

```txt theme={null}
pad("hello", 10) // "     hello"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | pad(...)`.

### `padEnd`

تملأ نهاية النص حتى طول محدد باستخدام محارف معينة.

**التوقيع:** `padEnd(str, targetLength, padString?)`

**مثال:**

```txt theme={null}
padEnd("hello", 10) // "hello     "
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | padEnd(...)`.

### `padStart`

تملأ بداية النص حتى طول محدد باستخدام محارف معينة.

**التوقيع:** `padStart(str, targetLength, padString?)`

**مثال:**

```txt theme={null}
padStart("hello", 10) // "     hello"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | padStart(...)`.

### `pascalCase`

تحول النص إلى صيغة PascalCase.

**التوقيع:** `pascalCase(str)`

**مثال:**

```txt theme={null}
pascalCase("hello world") // "HelloWorld"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | pascalCase(...)`.

### `repeat`

تكرر النص العدد المعطى من المرات.

**التوقيع:** `repeat(str, count)`

**مثال:**

```txt theme={null}
repeat("hello", 3) // "hellohellohello"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | repeat(...)`.

### `replace`

تستبدل أول تطابق للنص المطلوب بالقيمة البديلة.

**التوقيع:** `replace(str, oldStr, newStr)`

**مثال:**

```txt theme={null}
replace("hello world", "world", "there") // "hello there"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | replace(...)`.

### `replaceAll`

تستبدل كل التطابقات للنص المطلوب بالقيمة البديلة.

**التوقيع:** `replaceAll(str, oldStr, newStr)`

**مثال:**

```txt theme={null}
replaceAll("hello world world", "world", "there") // "hello there there"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | replaceAll(...)`.

### `replaceLast`

تستبدل آخر تطابق للنص المطلوب بالقيمة البديلة.

**التوقيع:** `replaceLast(str, search, replace)`

**مثال:**

```txt theme={null}
replaceLast("a-b-c-b", "b", "X") // "a-b-c-X"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | replaceLast(...)`.

### `replaceRegex`

تستبدل المطابقات التي يحددها تعبير نمطي.

**التوقيع:** `replaceRegex(str, regex, replace, flags?)`

**مثال:**

```txt theme={null}
replaceRegex("abc123", "\\d+", "#") // "abc#"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | replaceRegex(...)`.

### `slug`

تحول النص إلى بادئة مقروءة مناسبة لمسار أو معرف غير معروض كقيمة عمل.

**التوقيع:** `slug(str)`

**مثال:**

```txt theme={null}
slug("Hello World!") // "hello-world"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | slug(...)`.

### `snakeCase`

تحول النص إلى صيغة snake\_case المفصولة بشرطات سفلية.

**التوقيع:** `snakeCase(str)`

**مثال:**

```txt theme={null}
snakeCase("hello world") // "hello_world"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | snakeCase(...)`.

### `split`

تقسم النص إلى قائمة باستخدام الفاصل المعطى.

**التوقيع:** `split(str, separator)`

**مثال:**

```txt theme={null}
split("a,b,c", ",") // ["a", "b", "c"]
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | split(...)`.

### `startsWith`

تتحقق من بدء النص بالبادئة المعطاة.

**التوقيع:** `startsWith(str, substring)`

**مثال:**

```txt theme={null}
startsWith("hello", "he") // true
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | startsWith(...)`.

### `substr`

تستخرج جزءاً من النص من موضع وطول محددين.

**التوقيع:** `substr(str, start, end?)`

**مثال:**

```txt theme={null}
substr("hello", 1, 3) // "el"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | substr(...)`.

### `titleCase`

تحول كلمات النص إلى صيغة عناوين.

**التوقيع:** `titleCase(str)`

**مثال:**

```txt theme={null}
titleCase("hello world") // "Hello World"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | titleCase(...)`.

### `trim`

تزيل المسافات من بداية النص ونهايته.

**التوقيع:** `trim(str)`

**مثال:**

```txt theme={null}
trim("  hello  ") // "hello"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | trim(...)`.

### `trimEnd`

تزيل المسافات من نهاية النص فقط.

**التوقيع:** `trimEnd(str)`

**مثال:**

```txt theme={null}
trimEnd("  hello  ") // "  hello"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | trimEnd(...)`.

### `trimStart`

تزيل المسافات من بداية النص فقط.

**التوقيع:** `trimStart(str)`

**مثال:**

```txt theme={null}
trimStart("  hello  ") // "hello  "
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | trimStart(...)`.

### `truncate`

تقص النص إلى طول محدد وتضيف لاحقة عند الحاجة وفق إعدادات الدالة.

**التوقيع:** `truncate(str, length)`

**مثال:**

```txt theme={null}
truncate("hello world", 5) // "hello"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | truncate(...)`.

### `unescapeHtml`

تعيد محارف HTML المهربة إلى شكلها النصي الأصلي.

**التوقيع:** `unescapeHtml(str)`

**مثال:**

```txt theme={null}
unescapeHtml("&lt;div&gt;hello&lt;/div&gt;") // "<div>hello</div>"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | unescapeHtml(...)`.

### `upper`

تحول أحرف النص إلى أحرف كبيرة.

**التوقيع:** `upper(str)`

**مثال:**

```txt theme={null}
upper("hello") // "HELLO"
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | upper(...)`.

### `wordCount`

تعيد عدد الكلمات في النص بعد تحليله إلى كلمات.

**التوقيع:** `wordCount(str)`

**مثال:**

```txt theme={null}
wordCount("hello world") // 2
```

**ملاحظة:** يمكن أيضاً كتابتها كتحويل عندما تكون القيمة الأولى هي المدخل: `value | wordCount(...)`.

## قائمة تحقق قبل النشر

* ابدأ بقيمة معروفة وتحقق من النتيجة المتوقعة.
* تعامل صراحةً مع القيم الفارغة وnull والقوائم الفارغة.
* لا تضع أسراراً أو رموز وصول أو بيانات شخصية حساسة داخل تعبير.
* راجع [سياقات وتوافر التعبيرات](/ar/reference/expressions/contexts) قبل نسخ تعبير بين ميزتين.

![دوال النصوص في KayanOS](https://kayanos.app/docs-images/ar/reference/expressions-helpers-string.png)
