loosely
Version:
Text loosely based on input
36 lines (30 loc) • 727 B
JavaScript
import Mask from "./mask.js";
import { reverse } from "./utils.js";
/**
* A mask that filters from right to left.
*/
export default class ReverseMask extends Mask {
/**
* Build a graph from a regular expression.
* @param {String|RegExp} mask - The regular expression to use.
*/
constructor(mask) {
super(mask);
this.graph.reverse();
}
/**
* Modify the input to satisfy the mask.
* @param {String} input - The text to mask.
* @returns {String} - The masked text.
*/
filter(input) {
return reverse(super.filter(reverse(input)));
}
/**
* Generate text that satisfies the mask.
* @returns {String} - The text.
*/
sample() {
return reverse(super.sample());
}
}