Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 1x 1x 1x 190x 1x 196x 196x 1x 81x | const SPACES_REGEX = /[\u2000\u2009\u200a\u200b\u202f\u205f\u3000\s\t\r\n]/gm;
const PUNCTUATIONS = '.,?!:"()[]\\/';
/**
* Check if the given character is punctuation
* @param char The character to check
*/
export function isPunctuation(char: string) {
return PUNCTUATIONS.indexOf(char) >= 0;
}
/**
* Check if the give character is a space. A space can be normal ASCII pace (32) or non-break space (160) or other kinds of spaces
* such as ZeroWidthSpace, ...
* @param char The character to check
*/
export function isSpace(char: string) {
const code = char?.charCodeAt(0) ?? 0;
return code == 160 || code == 32 || SPACES_REGEX.test(char);
}
/**
* Normalize spaces of the given string. After normalization, all leading (for forward) or trailing (for backward) spaces
* will be replaces with non-break space (160)
* @param txt The string to normalize
* @param isForward Whether normalize forward or backward
*/
export function normalizeText(txt: string, isForward: boolean): string {
return txt.replace(isForward ? /^\u0020+/ : /\u0020+$/, '\u00A0');
}
|