Online Text Tools

Online Text Tools

A collection of free online text tools β€” no registration, no installation, no limits. Validate YAML and JSON, compare texts, count characters, change case, and encode data in Base64. Every tool runs directly in your browser β€” your data never leaves your device.

txtly.ru text tools are built for developers, system administrators, content managers, copywriters, and anyone who works with text data on a daily basis. Each tool solves a specific everyday problem, saving time and eliminating manual processing errors.

Check out other tool categories: CSS design tools, converters, and generators.

Why Choose txtly.ru Text Tools

  • Free and no registration β€” no hidden fees, subscriptions, or usage limits
  • Privacy-first β€” all processing happens client-side (in your browser); your data is never uploaded to any server
  • Instant results β€” local processing means no network latency: your text stays on your machine
  • Accuracy β€” validators strictly follow format specifications (JSON RFC 8259, YAML 1.2)
  • Responsive design β€” tools work equally well on desktop, tablet, and smartphone
  • One-click copy β€” every result can be instantly copied to your clipboard

How to Use These Tools

  1. Pick a tool from the list below or via the navigation menu
  2. Paste or type your text into the input field
  3. Click the action button β€” results appear instantly
  4. Copy the result β€” every output field has a copy button next to it

Power Text Tools β€” Universal Text Processor

What It Is

Power Text Tools is a multifunctional text processor that combines over 100 text processing operations in a single interface. Think of it as a Swiss Army knife for data work: JSON, YAML, Regex, CSV, Script Engine, and much more. Instead of opening a dozen browser tabs with specialized tools, you get everything in one window.

Power Text Tools is built around the pipeline concept: you can sequentially apply multiple operations to text, where the output of one operation becomes the input for the next. This opens up limitless combinations for complex data processing tasks.

Features

  • JSON Tools β€” validation, formatting (beautify/minify), JSON ↔ YAML ↔ XML ↔ CSV conversion, key sorting, string escape/unescape
  • YAML Tools β€” syntax validation, formatting, conversion to JSON
  • Regex Tools β€” search and replace with regular expressions, group highlighting, real-time pattern testing
  • CSV Tools β€” parsing, formatting, JSON conversion, delimiter handling
  • Script Engine β€” write custom scripts for non-standard transformations
  • Encoding β€” Base64, URL-encode/decode, HTML-escape/unescape
  • Text operations β€” line sorting, deduplication, trim, case change, line numbering
  • Hashing β€” MD5, SHA-1, SHA-256, SHA-512

When to Use

  • DevOps and system administration β€” validating configuration files (Docker Compose, Kubernetes, Ansible, CI/CD pipelines) before deployment
  • Backend development β€” formatting and validating API JSON responses, converting data formats
  • Data Science and analytics β€” preprocessing CSV files, data cleaning, format conversion before database import
  • Content management β€” batch text processing, HTML tag stripping, case normalization
  • Learning regular expressions β€” interactive regex pattern testing with match highlighting
  • Debugging β€” quick JSON/YAML structure checks, finding syntax errors

Example: Pipeline Processing

Problem: you have a Docker Compose YAML config file. You need to validate it, convert to JSON, and minify.

Solution with Power Text Tools:

  1. Step 1 (YAML Validate) β€” paste the YAML, check for errors. The tool highlights problems: wrong indentation, tabs instead of spaces, unclosed quotes.
  2. Step 2 (YAML β†’ JSON) β€” convert valid YAML to JSON in one click.
  3. Step 3 (JSON Minify) β€” compress the JSON by removing spaces and line breaks for production use.

Result: a minified JSON ready to use β€” in 3 clicks.

Frequently Asked Questions (FAQ)

Which formats support conversion? Power Text Tools supports bidirectional conversion between JSON, YAML, XML, and CSV. You can convert a YAML config to JSON for an API, JSON to CSV for Excel, or XML to YAML for Ansible.

Does Script Engine run arbitrary JavaScript? Yes, the Script Engine executes user JavaScript in a secure sandbox. You can write custom transformation functions, use regular expressions, and access built-in JavaScript methods. The script receives the input text as a variable and must return the processed result.

Is my data stored anywhere? No. All operations are performed entirely client-side (in your browser). No data is transmitted to txtly.ru servers. You can disconnect your internet after the page loads β€” the tool will continue working.

Can I automate repetitive tasks? Yes, pipelines can be configured once and saved. For frequently repeated tasks, you can also write a script in the Script Engine.

How is Power Text Tools different from individual txtly.ru tools? Individual tools (JSON formatter, YAML validator) are optimized for a single specific task with a minimal interface. Power Text Tools is a multi-tool for complex multi-step transformations requiring flexibility and operation chaining.

Open Power Text Tools β†’


Online YAML Validator

What It Is

The YAML Validator is an online tool for checking YAML file syntax. YAML (YAML Ain't Markup Language) is a human-readable data serialization format widely used in configuration files: Docker Compose, Kubernetes, Ansible, GitHub Actions, CI/CD pipelines, and many other systems.

The validator checks document structure, indentation, data types, and identifies syntax errors with precise line and position reporting. This is critical because a single YAML error can cause deployment failures, service crashes, or incorrect configuration.

Why YAML Is Tricky to Validate Manually

YAML appears simple but has several pitfalls that cause errors even for experienced developers:

  • Indentation β€” YAML is indentation-sensitive, like Python. One wrong space breaks the entire structure. The specification requires spaces only (no tabs), with 2 spaces as the standard indent.
  • Tabs vs. spaces β€” using tabs instead of spaces is a syntax error. They look identical in a text editor but the YAML parser tells them apart.
  • Colons in strings β€” `url: http://example.com` is valid, but `message: Check: this value` requires quotes, or the parser interprets the colon as a key-value separator.
  • Special characters β€” `&`, `*`, `!`, `|`, `>`, `%`, `@`, ` ` ` have special meaning in YAML and need escaping in strings. - **Boolean values** β€” `yes`, `no`, `true`, `false`, `on`, `off` in unquoted YAML are interpreted as boolean types, not strings. For example, `country: no` becomes `country: false`, which is probably not what you wanted. - **Numeric ambiguities** β€” `version: 1.10` may be read as the number 1.1 (losing the trailing zero), and `phone: 0123456789` may be parsed as an octal number. ### How the txtly.ru Validator Works The YAML validator is built into Power Text Tools and runs entirely client-side: 1. **Paste your YAML** into the input field 2. **Instant check** β€” the parser analyzes syntax and reports errors with line and column numbers 3. **Error highlighting** β€” problematic areas are color-highlighted for quick visual identification 4. **Formatting** β€” valid YAML can be auto-formatted to a consistent indentation style 5. **Conversion** β€” the result can be immediately converted to JSON for API use ### Common Errors and Fixes **Error 1: Tabs instead of spaces** CF0 **Error 2: Unquoted colon in value** CF1 **Error 3: Boolean misinterpreted as string** CF2 ### Frequently Asked Questions (FAQ) **What's the difference between YAML and YML?** None. `.yml` and `.yaml` are identical file extensions for the YAML format. Historically, `.yml` is more popular due to DOS/Windows 8.3 filename restrictions, but both extensions are equivalent. Modern systems support both interchangeably. **Why does my valid JSON not work as YAML?** YAML is a superset of JSON starting from version 1.2, meaning any valid JSON is valid YAML. However, the reverse is not true: YAML has richer syntax (anchors, references, multi-line strings, tags) that has no JSON equivalent. **Which YAML version is supported?** The validator supports YAML 1.2 (2009 specification) with the most common constructs. This is the version used by Kubernetes, Ansible, and GitHub Actions. **Can I validate multiple YAML documents in one file?** Yes, YAML supports multiple documents in a single file, separated by `---`. The validator checks each document individually and indicates which one contains an error. [Open YAML Validator in Power Text Tools β†’](/en/tools/text/pipeline/) --- ## Online JSON Formatter ### What It Is The **JSON Formatter** is an online tool for formatting (beautify), minifying, and validating JSON data. JSON (JavaScript Object Notation) is a text-based data interchange format based on JavaScript syntax and is the de facto standard for web APIs, configuration files, and structured data storage. The formatter turns a compressed single-line JSON response from an API into readable, indented output β€” and vice versa, compresses formatted JSON to minimal size for network transmission. ### Features - **Beautify (formatting)** β€” add indentation and line breaks for readability, with configurable indent size (2 or 4 spaces) - **Minify** β€” strip all non-significant whitespace and line breaks for minimum file size - **Validation** β€” check JSON syntax against the RFC 8259 specification with precise error location reporting - **Key sorting** β€” alphabetically sort object keys for easier version comparison - **Escape/unescape** β€” convert special characters in JSON strings and back ### When to Use - **API development and debugging** β€” reading and analyzing JSON responses from a server. A compressed JSON string thousands of characters long is unreadable without formatting - **Configuration files** β€” formatting package.json, tsconfig.json, docker-compose, and other config files for better readability - **Logging** β€” structured logs are often stored as JSON; the formatter helps quickly locate specific fields - **Databases** β€” MongoDB, Firebase, Elasticsearch, and other NoSQL systems use JSON-like formats - **Pre-upload validation** β€” checking JSON correctness before sending to an API or saving to a database - **Version comparison** β€” key sorting and formatting make diffing two JSON files meaningful ### Formatting Example **Input (compressed JSON):** CF3 **Output (formatted, 2-space indent):** CF4 ### Frequently Asked Questions (FAQ) **What's the difference between JSON and a JavaScript object?** JSON is a strict text format. Unlike JavaScript objects, JSON requires double quotes for keys and strings, does not support comments, trailing commas, functions, or `undefined`. All keys and string values must use double quotes (`"`), not single (`'`) or backticks (`` ` `). **What makes JSON valid?** Valid JSON conforms to RFC 8259: correct nesting of `{}` and `[]`, keys and strings in double quotes, values of allowed types only (string, number, object, array, boolean, null), proper escape syntax for special characters. **Which indent size should I use?** 2 spaces β€” the de facto standard for the JavaScript/Node.js ecosystem (ESLint, Prettier defaults). 4 spaces β€” the Python standard (PEP 8). The choice depends on your project's style, but 2 spaces is the most common in JSON files. **What should I do if JSON contains a syntax error?** The validator shows the exact error position (line and column) and a description. The most common errors: unclosed quotes, missing or extra commas, trailing commas, single quotes instead of double, comments (JSON does not support comments). [Open JSON Formatter in Power Text Tools β†’](/en/tools/text/pipeline/) --- ## Online Text Diff Checker ### What It Is **Text Diff** is an online tool for line-by-line comparison of two texts with visual difference highlighting. The tool shows which lines have been added, removed, or modified using the classic diff algorithm β€” the same one used by the Unix/Linux `diff` utility. ### How the Diff Algorithm Works The diff algorithm solves the Longest Common Subsequence (LCS) problem between two texts and constructs the minimal set of edit operations (add, delete, keep) to transform the first text into the second. Step by step: 1. Both texts are split into lines 2. A match matrix is built between lines of the first and second text 3. The Longest Common Subsequence of lines is found 4. All lines outside the LCS are marked as added (green) or deleted (red) 5. The result is displayed with color coding: green background β€” added lines, red β€” deleted, white β€” unchanged ### When to Use - **Code version comparison** β€” quickly compare two versions of a script, config file, or document without a version control system. A `git diff` equivalent for those not using Git. - **Plagiarism detection** β€” compare two texts to identify copied content. The tool shows all matching and differing fragments. - **Editing review** β€” editors and copywriters can compare the original text with the edited version to verify all changes were applied correctly. - **Configuration comparison** β€” DevOps engineers can compare config files across environments (dev, staging, production) to identify discrepancies. - **Log analysis** β€” compare logs before and after changes for debugging. - **Education** β€” teachers can compare a student's work with a model solution. ### Comparison Example **Text A (original):** CF5 **Text B (modified):** CF6 **Comparison result:** - `host: localhost` β†’ marked red (deleted) - `host: 0.0.0.0` β†’ marked green (added) - `port: 8080` β†’ unchanged - `debug: true` β†’ red (deleted) - `debug: false` β†’ green (added) - `log_level: info` β†’ green (new line added) ### Frequently Asked Questions (FAQ) **How is this different from Word or Google Docs comparison?** Word processors typically show changes at the character level within lines, which is useful for documents. The txtly.ru tool compares texts line by line and is optimized for code and structured data, where line integrity matters. **Can I compare JSON or YAML files?** Yes, but for meaningful JSON/YAML comparison, it is recommended to first format both files using the JSON formatter or YAML validator, then compare the result. Otherwise, differences in formatting (indentation, line breaks) create noise in the output. **How accurate is the comparison?** The tool uses the classic Longest Common Subsequence (LCS) algorithm with dynamic programming, which guarantees finding the minimal set of differences. The algorithm is exact, but its complexity is O(nΒ·m), where n and m are the line counts of the two texts. **Are binary files supported?** No. The tool is designed for text data only. Binary files will produce meaningless results when compared. [Open Text Diff β†’](/en/tools/text/text-diff/) --- ## Online Character Counter ### What It Is The **Character Counter** is an online tool for instantly counting characters, words, sentences, lines, and paragraphs in text. Statistics update in real time as you type or paste text β€” no need to click a "count" button. ### Counting Metrics The tool shows the following metrics: | Metric | Description | |---|---| | **Characters (total)** | Total character count, including spaces and punctuation | | **Characters (no spaces)** | Character count excluding spaces, tabs, and line breaks | | **Words** | Word count, separated by spaces and punctuation | | **Sentences** | Sentence count (detected by periods, exclamation marks, and question marks) | | **Lines** | Line count (both empty and non-empty) | | **Paragraphs** | Paragraph count, separated by blank lines | | **Bytes (UTF-8)** | Text size in bytes when UTF-8 encoded | | **Reading time** | Approximate reading time (based on ~250 words per minute for English) | ### When to Use - **Copywriting and SMM** β€” checking text length before publishing. Many platforms have length limits: Twitter/X post β€” 280 characters, Instagram caption β€” 2,200, meta description for SEO β€” 150–160 characters, title tag β€” 50–60 - **SEO optimization** β€” controlling title length (50–60 characters) and meta description length (150–160 characters) for search engine results - **Academic assignments** β€” verifying compliance with essay, report, or term paper word count requirements - **UI development** β€” estimating text lengths for UI elements: buttons, tooltips, error messages - **Translation** β€” comparing original and translated text volume (English to German translation is typically 10–35% longer) - **Database design** β€” estimating text field sizes when designing a database schema ### Frequently Asked Questions (FAQ) **What counts as a word?** A word is a sequence of characters bounded by spaces, punctuation, or the start/end of the text. For example, "state-of-the-art" is one word, "as a matter of fact" is five words. **How is reading time calculated?** Reading time is estimated at 250 words per minute for English text. This is an approximate figure; actual speed depends on text complexity and reader proficiency. **Do spaces count toward the character total?** The tool shows both metrics: total characters with spaces (important for many systems like SMS messages) and characters without spaces (often used by publishers to estimate text volume). **What's the difference between "characters" and "bytes (UTF-8)"?** Character count is the number of glyphs in the text. Byte count in UTF-8 depends on the script: Latin characters β€” 1 byte each, Cyrillic β€” 2 bytes, CJK β€” 3 bytes, emoji β€” 4 bytes. "Hello" is 5 bytes, while "ЗдравствуйтС" is 24 bytes in UTF-8. [Open Character Counter β†’](/en/tools/text/character-counter/) --- ## Online Case Converter ### What It Is The **Case Converter** is an online tool for instantly transforming text case. Convert strings to UPPER CASE, lower case, Title Case, camelCase, PascalCase, snake_case, kebab-case, and other naming styles β€” in one click. Different case styles are used in programming (camelCase for JavaScript, snake_case for Python), title formatting (Title Case), URLs (kebab-case), and constants (UPPER_SNAKE_CASE). The converter automates the tedious switching between them. ### Supported Modes | Mode | Example | Where Used | |---|---|---| | **UPPER CASE** | HELLO WORLD | Headings, code constants, text emphasis | | **lower case** | hello world | Regular text, variable values | | **Title Case** | Hello World | Article titles, names | | **Sentence case** | Hello world | Sentence beginnings | | **camelCase** | helloWorld | JavaScript variables and functions | | **PascalCase** | HelloWorld | Classes in JavaScript/Java/C#, React components | | **snake_case** | hello_world | Python variables, database field names | | **UPPER_SNAKE_CASE** | HELLO_WORLD | Constants (Python, C, Java) | | **kebab-case** | hello-world | URL slugs, CSS classes, HTML attributes | | **aLtErNaTiNg cAsE** | HeLlO WoRlD | Stylistic decoration | ### When to Use - **Programming** β€” renaming variables when switching languages: Python uses snake_case, JavaScript uses camelCase, Java uses PascalCase for classes - **API work** β€” normalizing JSON keys to a consistent style: some APIs expect camelCase, others snake_case - **Content formatting** β€” converting headings to Title Case for articles, news, product cards - **SEO** β€” generating URL slugs from headings (kebab-case): "How to Cook Borscht" β†’ `/how-to-cook-borscht` - **Code generation** β€” automatically converting database table names to the target naming convention during code generation - **Log processing** β€” normalizing logs to a consistent style for easier searching and filtering ### Conversion Examples **Input:** `hello world` | Mode | Result | |---|---| | UPPER CASE | HELLO WORLD | | Title Case | Hello World | | camelCase | helloWorld | | snake_case | hello_world | | kebab-case | hello-world | | UPPER_SNAKE_CASE | HELLO_WORLD | **Input:** `userProfileData` | Mode | Result | |---|---| | snake_case | user_profile_data | | PascalCase | UserProfileData | | kebab-case | user-profile-data | | UPPER_SNAKE_CASE | USER_PROFILE_DATA | ### Frequently Asked Questions (FAQ) **What's the difference between camelCase and PascalCase?** camelCase starts with a lowercase letter: `myVariable`, `getUserName`. PascalCase starts with an uppercase letter: `MyClass`, `GetUserName`. In JavaScript, camelCase is the standard for variables and functions, PascalCase for classes and components. **What is kebab-case and why use it?** kebab-case (also called spinal-case or hyphen-case) uses hyphens to separate words: `my-component`. It's used in URL slugs (`/my-blog-post`), CSS classes (`.my-class`), file names, and HTML attributes (`data-user-id`). Hyphens are more readable in URLs than underscores and are recommended by Google for SEO. **Why does Python use snake_case instead of camelCase?** Python follows PEP 8 β€” the official style guide β€” which mandates snake_case for variables and functions (`my_variable`, `calculate_total`), PascalCase for classes (`MyClass`), and UPPER_SNAKE_CASE for constants (`MAX_SIZE`). This promotes consistency across the Python ecosystem. **How does the converter handle mixed styles?** The tool detects word boundaries by case (for camelCase/PascalCase) and separators (spaces, underscores, hyphens). For example, `userProfileData` is split into words `user`, `Profile`, `Data`, after which any target style can be applied. [Open Case Converter β†’](/en/tools/text/case-converter/) --- ## Online Base64 Encoder and Decoder ### What It Is The **Base64 Encoder/Decoder** is an online tool for encoding and decoding data to and from the Base64 format. Base64 is a binary-to-text encoding scheme that uses 64 ASCII characters (A–Z, a–z, 0–9, +, and /). Every 3 bytes of input data are converted into 4 Base64 characters, increasing data size by approximately 33%. Base64 is used wherever binary data needs to travel through text-only channels: email attachments (MIME), Data URLs for embedding images in HTML/CSS, JSON Web Tokens (JWT), HTTP Basic authentication, and storing binary data in text database fields. ### Operation Modes - **Encode to Base64** β€” convert text or binary data into a Base64 string - **Decode from Base64** β€” recover the original data from a Base64 string - **URL-safe Base64** β€” a variant where `+` is replaced with `-`, `/` with `_`, and trailing `=` is removed. Used in URLs and filenames, where `+`, `/`, and `=` have special meanings - **UTF-8 support** β€” correct handling of Cyrillic, CJK characters, emoji, and other non-ASCII symbols ### When to Use - **Data URLs** β€” embedding small images directly in CSS or HTML: `background-image: url(data:image/png;base64,iVBORw0KGgo...)`. Saves HTTP requests for icons and small graphics - **JSON Web Tokens (JWT)** β€” authentication tokens use Base64 for encoding the header and payload: `eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0` - **Basic Auth** β€” the HTTP header `Authorization: Basic dXNlcjpwYXNzd29yZA==` contains Base64-encoded credentials - **Email attachments** β€” the MIME protocol encodes binary attachments in Base64 for safe SMTP transmission - **Database storage** β€” binary data (e.g., image thumbnails) in text database columns - **JSON transmission** β€” JSON does not support binary data, so it's encoded as a Base64 string ### Examples **Encoding:** CF7 **Decoding:** CF8 **URL-safe Base64:** CF9 ### Frequently Asked Questions (FAQ) **Why does Base64 increase data size?** Base64 uses 64 symbols to represent data, so for every input byte (8 bits), approximately 1.33 output characters are produced. This is because 3 bytes (24 bits) are encoded into 4 Base64 characters (4 Γ— 6 bits = 24 bits). The net size increase is roughly 33%. **Is Base64 encryption?** No. Base64 is encoding, not encryption. Base64-encoded data can be trivially decoded back without a key. Do not use Base64 to protect sensitive data β€” use encryption algorithms (AES, RSA) for that purpose. **What's the difference between standard and URL-safe Base64?** Standard Base64 uses `+`, `/`, and `=`, which have special meanings in URLs (`+` β€” space, `/` β€” path separator, `=` β€” query parameter). The URL-safe variant replaces them with `-`, `_`, and strips `=`, making the string safe for URLs without additional percent-encoding. **How can I tell if a string is Base64-encoded?** Indicators: the string consists only of A–Z, a–z, 0–9, `+`, `/` (or `-`, `_` for URL-safe), length is a multiple of 4 (accounting for `= padding). However, relying on appearance alone is unreliable β€” try decoding and check whether the result is meaningful.

Open Base64 Encoder/Decoder β†’


Other Useful Tools

After mastering these text tools, check out the CSS design tools β€” gradient, shadow, and filter generators are essential for web layout. For automating repetitive tasks, use the generators β€” password generator, UUID generator, and random number generator.

If you need number-crunching tools, see the math calculators β€” from circle area to quadratic equation solving. For routine unit conversions, use the converters.