129 lines
4.6 KiB
JavaScript
129 lines
4.6 KiB
JavaScript
function newFoundationsUtilitiesStrings() {
|
|
let thisObject = {
|
|
allWordsToUpper: allWordsToUpper,
|
|
fromCamelCaseToUpperWithSpaces: fromCamelCaseToUpperWithSpaces,
|
|
isCamelCase: isCamelCase,
|
|
replaceSpecialCharactersForSpaces: replaceSpecialCharactersForSpaces,
|
|
cleanTextOfCommonWordEndings: cleanTextOfCommonWordEndings
|
|
}
|
|
|
|
return thisObject
|
|
|
|
function allWordsToUpper(text) {
|
|
let splittedText = text.split(' ')
|
|
let result = ''
|
|
for (let i = 0; i < splittedText.length; i++) {
|
|
let word = splittedText[i]
|
|
word = word.charAt(0).toUpperCase() + word.slice(1)
|
|
result = result + ' ' + word
|
|
}
|
|
return result.trim()
|
|
}
|
|
|
|
function fromCamelCaseToUpperWithSpaces(text) {
|
|
let result = text.replace(/([A-Z])/g, " $1");
|
|
return result.charAt(0).toUpperCase() + result.slice(1);
|
|
}
|
|
|
|
function isCamelCase(text) {
|
|
/*
|
|
We are not only going to detect standard Camel Case, but also
|
|
we will accept strings with numbers and dots, so that
|
|
object paths test positive.
|
|
*/
|
|
|
|
/* Check that there are not invalid symbols */
|
|
let result = /^[A-Za-z0-9.]+$/.test(text)
|
|
if (result === false) { return false }
|
|
|
|
/* Check that first char is a letter in lower case*/
|
|
result = /^[a-z]+$/.test(text[0])
|
|
if (result === false) { return false }
|
|
|
|
let upperCaseDetected = false
|
|
let numbersDetected = false
|
|
let dotsDetected = false
|
|
for (let i = 1; i < text.length; i++) {
|
|
let character = text[i]
|
|
|
|
result = /^[0-9]+$/.test(character)
|
|
if (result === true) {
|
|
numbersDetected = true
|
|
if (text[i - 1] === '.') { return false }
|
|
}
|
|
|
|
result = /^[A-Z]+$/.test(character)
|
|
if (result === true) {
|
|
upperCaseDetected = true
|
|
if (text[i - 1] === '.') { return false }
|
|
}
|
|
|
|
if (character === '.') {
|
|
dotsDetected = true
|
|
if (text[i-1] !== undefined && text[i+1] !== undefined && text[i-1] !== '.' && text[i+1] !== '.'){
|
|
return true
|
|
}
|
|
}
|
|
|
|
}
|
|
/* Check that there is at lest one upper case before numbers or dots */
|
|
if (upperCaseDetected === false) {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
function replaceSpecialCharactersForSpaces(text) {
|
|
let result = text
|
|
result = result.replaceAll('. ', ' ')
|
|
result = result.replaceAll(', ', ' ')
|
|
result = result.replaceAll('- ', ' ')
|
|
result = result.replaceAll('/ ', ' ')
|
|
result = result.replaceAll('_ ', ' ')
|
|
result = result.replaceAll(': ', ' ')
|
|
result = result.replaceAll('; ', ' ')
|
|
result = result.replaceAll('( ', ' ')
|
|
result = result.replaceAll(') ', ' ')
|
|
result = result.replaceAll('{ ', ' ')
|
|
result = result.replaceAll('} ', ' ')
|
|
result = result.replaceAll('[ ', ' ')
|
|
result = result.replaceAll('] ', ' ')
|
|
result = result.replaceAll('" ', ' ')
|
|
result = result.replaceAll('\\n ', ' ')
|
|
result = result.replaceAll('\\ ', ' ')
|
|
|
|
result = result.replaceAll('.', ' ')
|
|
result = result.replaceAll(',', ' ')
|
|
result = result.replaceAll('-', ' ')
|
|
result = result.replaceAll('/', ' ')
|
|
result = result.replaceAll('_', ' ')
|
|
result = result.replaceAll(':', ' ')
|
|
result = result.replaceAll(';', ' ')
|
|
result = result.replaceAll('(', ' ')
|
|
result = result.replaceAll(')', ' ')
|
|
result = result.replaceAll('{', ' ')
|
|
result = result.replaceAll('}', ' ')
|
|
result = result.replaceAll('[', ' ')
|
|
result = result.replaceAll(']', ' ')
|
|
result = result.replaceAll('"', ' ')
|
|
result = result.replaceAll('\\n', ' ')
|
|
result = result.replaceAll("\\", ' ')
|
|
|
|
result = result.replaceAll('@', ' ')
|
|
result = result.replaceAll(' ', ' ')
|
|
result = result.replaceAll(' ', ' ')
|
|
result = result.replaceAll(' ', ' ')
|
|
return result
|
|
}
|
|
|
|
function cleanTextOfCommonWordEndings(text) {
|
|
let result = UI.projects.foundations.utilities.strings.replaceSpecialCharactersForSpaces(text)
|
|
result = result.replaceAll(' ', '')
|
|
result = result.replaceAll('s', '')
|
|
result = result.replaceAll('ing', '')
|
|
result = result.replaceAll('ed', '')
|
|
result = result.replaceAll('y', '')
|
|
result = result.replaceAll('ies', '')
|
|
return result
|
|
}
|
|
} |