devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
29 lines (28 loc) • 973 B
JavaScript
import { StringUtils } from '@devexpress/utils/lib/utils/string';
import { ValueInfo } from './value-info';
export class StringValueParser {
static regex = /[0-9.]([^0-9.])/;
static parse(inputString) {
return StringUtils.isNullOrEmpty(inputString) ?
ValueInfo.empty :
StringValueParser.splitUnitFromValue(inputString);
}
static splitUnitFromValue(inputString) {
let value = '';
let unit = inputString;
const match = inputString.match(StringValueParser.regex);
if (match) {
const pos = match.index + match[1].length;
value = inputString.substring(0, pos);
unit = inputString.substring(pos);
}
else {
value = inputString;
unit = '';
}
const val = parseFloat(value);
return isNaN(val) ?
new ValueInfo(unit) :
new ValueInfo(unit, val);
}
}