Skip to main content

Half-Space

Add Persian half-space (Zero-Width Non-Joiner - ZWNJ) characters to text for proper typography.

Available Functions

  • addHalfSpaceChar - Add half-spaces to Persian text
  • removeHalfSpaceChar - Remove half-spaces from text

Basic Usage

import { addHalfSpaceChar, removeHalfSpaceChar } from "@persian-tools/persian-tools";

// Add half-spaces
console.log(addHalfSpaceChar("میخواهم به شما کمک کنم"));
// Output: "می‌خواهم به شما کمک کنم"

// Remove half-spaces
console.log(removeHalfSpaceChar("می‌خواهم"));
// Output: "میخواهم"

API Reference

text
string
required
Persian text to process
result
string
Text with proper half-spaces added or removed

Examples

Content Publishing

import { addHalfSpaceChar } from "@persian-tools/persian-tools";

const prepareForPublish = (content: string): string => {
	return addHalfSpaceChar(content);
};

const text = "این کتاب میتواند برای شما مفید باشد";
console.log(prepareForPublish(text));
// "این کتاب می‌تواند برای شما مفید باشد"

Form Data Processing

import { addHalfSpaceChar } from "@persian-tools/persian-tools";

const processArticle = (article: { title: string; content: string }) => {
	return {
		title: addHalfSpaceChar(article.title),
		content: addHalfSpaceChar(article.content),
	};
};

Common Half-Space Patterns

The function automatically adds half-spaces before:
  • می (present tense prefix)
  • نمی (negative present prefix)
  • بی (without)
  • تر / ترین (comparative/superlative)
  • ها (plural suffix)
  • های (possessive plural)
addHalfSpaceChar("میرود"); // "می‌رود"
addHalfSpaceChar("نمیتوانم"); // "نمی‌توانم"
addHalfSpaceChar("بیحساب"); // "بی‌حساب"
addHalfSpaceChar("بزرگتر"); // "بزرگ‌تر"
addHalfSpaceChar("کتابها"); // "کتاب‌ها"

Use Cases

Ensure correct typography:
const post = {
  title: addHalfSpaceChar(rawTitle),
  body: addHalfSpaceChar(rawBody)
};
Format e-books with proper spacing:
const chapters = rawChapters.map(chapter => ({
  ...chapter,
  content: addHalfSpaceChar(chapter.content)
}));

Type Definition

function addHalfSpaceChar(text: string): string;
function removeHalfSpaceChar(text: string): string;