string - bhsd-harry/wikiparser-node GitHub Wiki

This is an internal document. For visitors, you can now go back to the home page.

// trimLc (Node.js)
var {trimLc} = require("../util/string");
assert.strictEqual(trimLc("  A  "), "a");
// restore (Node.js)
var {restore} = require("../util/string");
var stack = ["x", "y", "z", "\x000n\x7F\x001n\x7F\x002n\x7F"];
assert.strictEqual(
	restore("\x000\x7F\x001\x7F\x002\x7F", stack),
	"xyz",
);
assert.strictEqual(restore(stack[3], stack, 2), "xyz");
assert.strictEqual(restore("\x003g\x7F", stack, 1), "xyz");
// tidy (Node.js)
var {tidy} = require("../util/string");
assert.strictEqual(
	tidy("\x00\x7Fa\r\nb"),
	"a\nb",
);
// removeComment (Node.js)
var {removeComment} = require("../util/string");
assert.strictEqual(
	removeComment("\x000c\x7F\x001n\x7F\x002t\x7F"),
	"\x002t\x7F",
);
// text (Node.js)
var {text} = require("../util/string");
var child = {
	text() {
		return "test";
	},
};
assert.strictEqual(text(["x", child, "y"], ","), "x,test,y");
// decodeHtmlBasic (Node.js)
var {decodeHtmlBasic} = require("../util/string");
assert.strictEqual(decodeHtmlBasic("{"), "{");
assert.strictEqual(decodeHtmlBasic("{"), "{");
assert.strictEqual(decodeHtmlBasic("&lt;"), "<");
assert.strictEqual(decodeHtmlBasic("&GT;"), ">");
assert.strictEqual(decodeHtmlBasic("&lbrace;"), "{");
assert.strictEqual(decodeHtmlBasic("&rbrack;"), "]");
assert.strictEqual(decodeHtmlBasic("&nbsp;"), " ");
assert.strictEqual(decodeHtmlBasic("&amp;"), "&");
assert.strictEqual(decodeHtmlBasic("&QUOT;"), '"');
// decodeHtml (Node.js)
var {decodeHtml} = require("../util/string");
assert.strictEqual(decodeHtml("&#123;"), "{");
assert.strictEqual(decodeHtml("&#x7B;"), "{");
assert.strictEqual(decodeHtml("&lt;"), "<");
assert.strictEqual(decodeHtml("&GT;"), ">");
assert.strictEqual(decodeHtml("&lbrace;"), "{");
assert.strictEqual(decodeHtml("&rbrack;"), "]");
assert.strictEqual(decodeHtml("&nbsp;"), " ");
assert.strictEqual(decodeHtml("&amp;"), "&");
assert.strictEqual(decodeHtml("&QUOT;"), '"');
assert.strictEqual(decodeHtml("&apos;"), "'");
// decodeNumber (Node.js)
var {decodeNumber} = require("../util/string");
assert.strictEqual(decodeNumber("&#123;"), "{");
assert.strictEqual(decodeNumber("&#x7B;"), "{");
// replaceEntities (main)
var {replaceEntities} = require("../util/string");
var anchorencode = replaceEntities();
assert.strictEqual(
	anchorencode('&<>"{}[]|'),
	"&amp;&lt;&gt;&quot;&#123;&#125;&#91;&#93;&#124;",
);
// escape (main)
var {escape: esc} = require("../util/string");
assert.strictEqual(esc("&<>"), "&amp;&lt;&gt;");
// print (main)
var {print} = require("../util/string");
var child = {
	print() {
		return "test";
	},
};
assert.strictEqual(
	print([child, child], {pre: "a", post: "b", sep: ","}),
	"atest,testb",
);
// escapeRegExp (main)
var {escapeRegExp} = require("../util/string");
assert.deepStrictEqual(
	new RegExp(escapeRegExp(String.raw`\{}()|.?*+^$[]`), "u"),
	/\\\{\}\(\)\|\.\?\*\+\^\$\[\]/u,
);
// noWrap (main)
var {noWrap} = require("../util/string");
assert.strictEqual(noWrap("a\nb"), String.raw`a\nb`);
// encode (main)
var {encode} = require("../util/string");
assert.strictEqual(encode("x<x>x[x]x#x|x="), "x%3Cx%3Ex%5Bx%5Dx%23x%7Cx%3D");
// normalizeSpace (main)
var {normalizeSpace} = require("../util/string"),
	{Token} = require("../src/index");
var token = new Token("a\n\nb");
normalizeSpace(token);
assert.equal(token, "a b");
// sanitize (main)
var {sanitize} = require("../util/string");
assert.strictEqual(sanitize("&<>&amp&amp;"), "&&lt;&gt;&amp;amp&amp;");
// sanitizeAttr (main)
var {sanitizeAttr} = require("../util/string");
assert.strictEqual(sanitizeAttr('<>"  &#10;'), "&lt;&gt;&quot;  ");
assert.strictEqual(sanitizeAttr('<>"  &#10;', true), "&lt;&gt;&quot;__");
// sanitizeId (main)
var {sanitizeId} = require("../util/string");
assert.strictEqual(sanitizeId('&"'), "&amp;&quot;");
// sanitizeAlt (main)
var {sanitizeAlt} = require("../util/string");
assert.strictEqual(sanitizeAlt(`<b> '  " </b>`), "' &quot;");
// newline (main)
var {newline} = require("../util/string");
assert.strictEqual(newline("a\nb"), "a&#10;b");
// removeCommentLine (main)
var {removeCommentLine} = require("../util/string");
assert.strictEqual(
	removeCommentLine(`a\n${"\0"}0c\x7F `),
	"a\n ",
);
assert.strictEqual(
	removeCommentLine(`a\n${"\0"}0c\x7F `, true),
	"a",
);
assert.strictEqual(
	removeCommentLine(` ${"\0"}0c\x7F \n ${"\0"}1c\x7F `),
	"  \n  ",
);
assert.strictEqual(
	removeCommentLine(` ${"\0"}0c\x7F \n ${"\0"}1c\x7F `, true),
	"",
);
assert.strictEqual(
	removeCommentLine(`a\n \n${"\0"}0c\x7F ${"\0"}1c\x7F\nb`, true),
	"a\n \nb",
);
// isInterwiki (main)
var {isInterwiki} = require("../util/string");
assert.strictEqual(isInterwiki("a", {interwiki: ["a"]}), null);
assert.deepStrictEqual(
	[...isInterwiki("_:_a_:_A", {interwiki: ["a"]})],
	["a :", "a"],
);