@libn/utf
v0.4.3
Published
Process UTF-8 and UTF-16.
Readme
@libn/utf
Process UTF-8 and UTF-16.
default
Escape strings before including them in HTML or regex.
import { unhtml, unrexp } from "@libn/utf";
import { assertMatch } from "@std/assert";
assertMatch(unhtml("<script>alert(1)</script>"), /^[^<>]*$/);
assertMatch("(?:[\n])", RegExp(unrexp("(?:[\n])")));Restrict strings to RFC 9839 Unicode Assignables subset, or at least replace lone surrogates.
import { uncode, unlone } from "@libn/utf";
import { assertEquals } from "@std/assert";
const string = "\ud800\0";
assertEquals(uncode(string), "\ufffd\ufffd");
assertEquals(unlone(string), "\ufffd\0");Remove nonstandard breaks and diacritics.
import { unline, unmark } from "@libn/utf";
import { assertEquals } from "@std/assert";
const string = "\r\n\xf1";
assertEquals(unline(string), "\n\xf1");
assertEquals(unmark(string), "\r\nn");Case fold strings to compare them case-insensitively.
import { uncase } from "@libn/utf";
import { assertEquals, assertNotEquals } from "@std/assert";
const one = "FUSS", two = "Fu\xdf";
assertNotEquals(one, two);
assertEquals(uncase(one), uncase(two));