36 lines
838 B
JavaScript
36 lines
838 B
JavaScript
var regExpNbspEntity = / /gi;
|
|
var regExpNbspHex = /\xA0/g;
|
|
var regExpSpaces = /\s+([^\s])/gm;
|
|
/**
|
|
* Collects the text content of a given element.
|
|
*
|
|
* @param node the element
|
|
* @param trim whether to remove trailing whitespace chars
|
|
* @param singleSpaces whether to convert multiple whitespace chars into a single space character
|
|
*/
|
|
|
|
export default function text(node, trim, singleSpaces) {
|
|
if (trim === void 0) {
|
|
trim = true;
|
|
}
|
|
|
|
if (singleSpaces === void 0) {
|
|
singleSpaces = true;
|
|
}
|
|
|
|
var elementText = '';
|
|
|
|
if (node) {
|
|
elementText = (node.textContent || '').replace(regExpNbspEntity, ' ').replace(regExpNbspHex, ' ');
|
|
|
|
if (trim) {
|
|
elementText = elementText.trim();
|
|
}
|
|
|
|
if (singleSpaces) {
|
|
elementText = elementText.replace(regExpSpaces, ' $1');
|
|
}
|
|
}
|
|
|
|
return elementText;
|
|
} |