@technobuddha/library
Version:
A large library of useful functions
18 lines • 1.52 kB
JavaScript
import { splitWords } from "./split-words.js";
import { hyphen, nonBreakingHyphen, space } from "./unicode.js";
/**
* Regular expression to match the first character of a word or a word following a hyphen or non-breaking hyphen.
* @internal
*/
const reWord = new RegExp(`^\\w|[${hyphen}${nonBreakingHyphen}-]\\w`, 'gui');
/**
* Capitalize the first word in a sentence, or capitalize a single word.
* @param input - The sentence or word to capitalize
* @group String
* @category Case Conversion
*/
export function uncapitalize(input) {
const [first, ...rest] = splitWords(input);
return [first.replaceAll(reWord, (c) => c.toLocaleLowerCase()), ...rest].join(space);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5jYXBpdGFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VuY2FwaXRhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFaEU7OztHQUdHO0FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxNQUFNLEdBQUcsaUJBQWlCLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUU3RTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYTtJQUN4QyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN2RixDQUFDIn0=