typescript-string-operations
Advanced tools
Comparing version
@@ -244,21 +244,39 @@ "use strict"; | ||
} | ||
ToString() { | ||
toString() { | ||
return this.Values.join($String.empty); | ||
} | ||
Append(value) { | ||
ToString() { | ||
return this.toString(); | ||
} | ||
append(value) { | ||
this.Values.push(value); | ||
} | ||
AppendLine(value) { | ||
Append(value) { | ||
this.append(value); | ||
} | ||
appendLine(value) { | ||
this.Values.push(EOL + value); | ||
} | ||
AppendFormat(format, ...args) { | ||
AppendLine(value) { | ||
this.appendLine(value); | ||
} | ||
appendFormat(format, ...args) { | ||
this.Values.push($String.format(format, ...args)); | ||
} | ||
AppendLineFormat(format, ...args) { | ||
AppendFormat(format, ...args) { | ||
this.appendFormat(format, ...args); | ||
} | ||
appendLineFormat(format, ...args) { | ||
this.Values.push(EOL + $String.format(format, ...args)); | ||
} | ||
Clear() { | ||
AppendLineFormat(format, ...args) { | ||
return this.appendLineFormat(format, ...args); | ||
} | ||
clear() { | ||
this.Values = []; | ||
} | ||
Clear() { | ||
this.clear(); | ||
} | ||
} | ||
exports.StringBuilder = StringBuilder; |
@@ -1,1 +0,1 @@ | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.StringBuilder=exports.$String=void 0;const EOL="\r\n";class $String{static regexNumber=/{(\d+(:\w*)?)}/g;static regexObject=/{(\w+(:\w*)?)}/g;static empty="";static Empty="";static IsNullOrWhiteSpace(value){return $String.isNullOrWhiteSpace(value)}static Join(delimiter,...args){return $String.join(delimiter,...args)}static Format(format,...args){return $String.format(format,...args)}static isNullOrWhiteSpace(value){try{return null==value||"undefined"==value?!0:value.toString().replace(/\s/g,"").length<1}catch(e){return console.log(e),!1}}static join(delimiter,...args){try{var firstArg=args[0];if(Array.isArray(firstArg)||firstArg instanceof Array){let tempString=$String.empty;for(let i=0;i<firstArg.length;i++){var current=firstArg[i];i<firstArg.length-1?tempString+=current+delimiter:tempString+=current}return tempString}if("object"==typeof firstArg){let tempString=$String.empty;const objectArg=firstArg,keys=Object.keys(firstArg);return keys.forEach(element=>{tempString+=objectArg[element]+delimiter}),tempString=tempString.slice(0,tempString.length-delimiter.length)}var stringArray=args;return $String.joinString(delimiter,...stringArray)}catch(e){return console.log(e),$String.empty}}static format(format,...args){try{return format.match($String.regexNumber)?$String.formatString($String.regexNumber,format,args):format.match($String.regexObject)?$String.formatString($String.regexObject,format,args,!0):format}catch(e){return console.log(e),$String.empty}}static formatString(regex,format,args,parseByObject=!1){return format.replace(regex,function(match,x){const s=match.split(":");1<s.length&&(x=s[0].replace("{",""),match=s[1].replace("}",""));let arg;return null==(arg=(parseByObject?args[0]:args)[x])||null==arg||match.match(/{\d+}/)||void 0!==(arg=$String.parsePattern(match,arg))&&null!=arg?arg:$String.empty})}static parsePattern(match,arg){switch(match){case"L":return arg=arg.toLocaleLowerCase();case"U":return arg=arg.toLocaleUpperCase();case"d":if("string"==typeof arg)return $String.getDisplayDateFromString(arg);if(arg instanceof Date)return $String.format("{0:00}.{1:00}.{2:0000}",arg.getDate(),arg.getMonth(),arg.getFullYear());break;case"s":if("string"==typeof arg)return $String.getSortableDateFromString(arg);if(arg instanceof Date)return $String.format("{0:0000}-{1:00}-{2:00}",arg.getFullYear(),arg.getMonth(),arg.getDate());break;case"n":{const replacedString=(arg="string"!=typeof arg?arg.toString():arg).replace(/,/g,".");if(isNaN(parseFloat(replacedString))||replacedString.length<=3)break;const numberparts=replacedString.split(/\D+/g);let parts=numberparts;const integer=(parts=1<numberparts.length?[$String.joinString("",...numberparts.splice(0,numberparts.length-1)),numberparts[numberparts.length-1]]:parts)[0];var mod=integer.length%3,output=0<mod?integer.substring(0,mod):$String.empty,mod=integer.substring(mod).match(/.{3}/g);return arg=output+"."+$String.join(".",mod)+(1<parts.length?","+parts[1]:"")}case"x":return this.decimalToHexString(arg);case"X":return this.decimalToHexString(arg,!0)}return"number"!=typeof arg&&isNaN(arg)||isNaN(+match)||$String.isNullOrWhiteSpace(arg)?arg:$String.formatNumber(arg,match)}static decimalToHexString(value,upperCase=!1){const parsed=parseFloat(value),hexNumber=parsed.toString(16);return upperCase?hexNumber.toLocaleUpperCase():hexNumber}static getDisplayDateFromString(input){var splitted=input.split("-");if(splitted.length<=1)return input;let day=splitted[splitted.length-1];input=splitted[splitted.length-2],splitted=splitted[splitted.length-3];return(day=(day=day.split("T")[0]).split(" ")[0])+`.${input}.`+splitted}static getSortableDateFromString(input){const splitted=input.replace(",","").split(".");if(splitted.length<=1)return input;input=splitted[splitted.length-1].split(" ");let time=$String.empty,result=(1<input.length&&(time=input[input.length-1]),splitted[splitted.length-1].split(" ")[0]+`-${splitted[splitted.length-2]}-`+splitted[splitted.length-3]);return!$String.isNullOrWhiteSpace(time)&&1<time.length?result+="T"+time:result+="T00:00:00",result}static formatNumber(input,formatTemplate){var formatTemplate=formatTemplate.length,input=input.toString();return formatTemplate<=input.length?input:(formatTemplate=formatTemplate-input.length,++formatTemplate,new Array(formatTemplate).join("0")+input)}static joinString(delimiter,...args){let temp=$String.empty;for(let i=0;i<args.length;i++)if(!("string"==typeof args[i]&&$String.isNullOrWhiteSpace(args[i])||"number"!=typeof args[i]&&"string"!=typeof args[i])){var arg=""+args[i];temp+=arg;for(let i2=i+1;i2<args.length;i2++)if(!$String.isNullOrWhiteSpace(args[i2])){temp+=delimiter,i=i2-1;break}}return temp}}exports.$String=$String,String.isNullOrWhiteSpace=$String.isNullOrWhiteSpace,String.join=$String.join,String.format=$String.format;class StringBuilder{Values;constructor(value=""){this.Values=[],$String.isNullOrWhiteSpace(value)||(this.Values=new Array(value))}ToString(){return this.Values.join($String.empty)}Append(value){this.Values.push(value)}AppendLine(value){this.Values.push(EOL+value)}AppendFormat(format,...args){this.Values.push($String.format(format,...args))}AppendLineFormat(format,...args){this.Values.push(EOL+$String.format(format,...args))}Clear(){this.Values=[]}}exports.StringBuilder=StringBuilder; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.StringBuilder=exports.$String=void 0;const EOL="\r\n";class $String{static regexNumber=/{(\d+(:\w*)?)}/g;static regexObject=/{(\w+(:\w*)?)}/g;static empty="";static Empty="";static IsNullOrWhiteSpace(value){return $String.isNullOrWhiteSpace(value)}static Join(delimiter,...args){return $String.join(delimiter,...args)}static Format(format,...args){return $String.format(format,...args)}static isNullOrWhiteSpace(value){try{return null==value||"undefined"==value?!0:value.toString().replace(/\s/g,"").length<1}catch(e){return console.log(e),!1}}static join(delimiter,...args){try{var firstArg=args[0];if(Array.isArray(firstArg)||firstArg instanceof Array){let tempString=$String.empty;for(let i=0;i<firstArg.length;i++){var current=firstArg[i];i<firstArg.length-1?tempString+=current+delimiter:tempString+=current}return tempString}if("object"==typeof firstArg){let tempString=$String.empty;const objectArg=firstArg,keys=Object.keys(firstArg);return keys.forEach(element=>{tempString+=objectArg[element]+delimiter}),tempString=tempString.slice(0,tempString.length-delimiter.length)}var stringArray=args;return $String.joinString(delimiter,...stringArray)}catch(e){return console.log(e),$String.empty}}static format(format,...args){try{return format.match($String.regexNumber)?$String.formatString($String.regexNumber,format,args):format.match($String.regexObject)?$String.formatString($String.regexObject,format,args,!0):format}catch(e){return console.log(e),$String.empty}}static formatString(regex,format,args,parseByObject=!1){return format.replace(regex,function(match,x){const s=match.split(":");1<s.length&&(x=s[0].replace("{",""),match=s[1].replace("}",""));let arg;return null==(arg=(parseByObject?args[0]:args)[x])||null==arg||match.match(/{\d+}/)||void 0!==(arg=$String.parsePattern(match,arg))&&null!=arg?arg:$String.empty})}static parsePattern(match,arg){switch(match){case"L":return arg=arg.toLocaleLowerCase();case"U":return arg=arg.toLocaleUpperCase();case"d":if("string"==typeof arg)return $String.getDisplayDateFromString(arg);if(arg instanceof Date)return $String.format("{0:00}.{1:00}.{2:0000}",arg.getDate(),arg.getMonth(),arg.getFullYear());break;case"s":if("string"==typeof arg)return $String.getSortableDateFromString(arg);if(arg instanceof Date)return $String.format("{0:0000}-{1:00}-{2:00}",arg.getFullYear(),arg.getMonth(),arg.getDate());break;case"n":{const replacedString=(arg="string"!=typeof arg?arg.toString():arg).replace(/,/g,".");if(isNaN(parseFloat(replacedString))||replacedString.length<=3)break;const numberparts=replacedString.split(/\D+/g);let parts=numberparts;const integer=(parts=1<numberparts.length?[$String.joinString("",...numberparts.splice(0,numberparts.length-1)),numberparts[numberparts.length-1]]:parts)[0];var mod=integer.length%3,output=0<mod?integer.substring(0,mod):$String.empty,mod=integer.substring(mod).match(/.{3}/g);return arg=output+"."+$String.join(".",mod)+(1<parts.length?","+parts[1]:"")}case"x":return this.decimalToHexString(arg);case"X":return this.decimalToHexString(arg,!0)}return"number"!=typeof arg&&isNaN(arg)||isNaN(+match)||$String.isNullOrWhiteSpace(arg)?arg:$String.formatNumber(arg,match)}static decimalToHexString(value,upperCase=!1){const parsed=parseFloat(value),hexNumber=parsed.toString(16);return upperCase?hexNumber.toLocaleUpperCase():hexNumber}static getDisplayDateFromString(input){var splitted=input.split("-");if(splitted.length<=1)return input;let day=splitted[splitted.length-1];input=splitted[splitted.length-2],splitted=splitted[splitted.length-3];return(day=(day=day.split("T")[0]).split(" ")[0])+`.${input}.`+splitted}static getSortableDateFromString(input){const splitted=input.replace(",","").split(".");if(splitted.length<=1)return input;input=splitted[splitted.length-1].split(" ");let time=$String.empty,result=(1<input.length&&(time=input[input.length-1]),splitted[splitted.length-1].split(" ")[0]+`-${splitted[splitted.length-2]}-`+splitted[splitted.length-3]);return!$String.isNullOrWhiteSpace(time)&&1<time.length?result+="T"+time:result+="T00:00:00",result}static formatNumber(input,formatTemplate){var formatTemplate=formatTemplate.length,input=input.toString();return formatTemplate<=input.length?input:(formatTemplate=formatTemplate-input.length,++formatTemplate,new Array(formatTemplate).join("0")+input)}static joinString(delimiter,...args){let temp=$String.empty;for(let i=0;i<args.length;i++)if(!("string"==typeof args[i]&&$String.isNullOrWhiteSpace(args[i])||"number"!=typeof args[i]&&"string"!=typeof args[i])){var arg=""+args[i];temp+=arg;for(let i2=i+1;i2<args.length;i2++)if(!$String.isNullOrWhiteSpace(args[i2])){temp+=delimiter,i=i2-1;break}}return temp}}exports.$String=$String,String.isNullOrWhiteSpace=$String.isNullOrWhiteSpace,String.join=$String.join,String.format=$String.format;class StringBuilder{Values;constructor(value=""){this.Values=[],$String.isNullOrWhiteSpace(value)||(this.Values=new Array(value))}toString(){return this.Values.join($String.empty)}ToString(){return this.toString()}append(value){this.Values.push(value)}Append(value){this.append(value)}appendLine(value){this.Values.push(EOL+value)}AppendLine(value){this.appendLine(value)}appendFormat(format,...args){this.Values.push($String.format(format,...args))}AppendFormat(format,...args){this.appendFormat(format,...args)}appendLineFormat(format,...args){this.Values.push(EOL+$String.format(format,...args))}AppendLineFormat(format,...args){return this.appendLineFormat(format,...args)}clear(){this.Values=[]}Clear(){this.clear()}}exports.StringBuilder=StringBuilder; |
{ | ||
"name": "typescript-string-operations", | ||
"version": "1.5.0-rc.0", | ||
"version": "1.5.0-rc.1", | ||
"description": "Simple lightweight string operation library for Typescript, works with Angular", | ||
@@ -42,3 +42,3 @@ "main": "dist/index.min.js", | ||
"uglify-js": "^3.17.0", | ||
"typescript-string-operations": "1.5.0-rc.0" | ||
"typescript-string-operations": "1.5.0-rc.1" | ||
}, | ||
@@ -45,0 +45,0 @@ "directories": { |
@@ -129,3 +129,3 @@ | ||
// using String.Format() internally | ||
// using String.format() internally | ||
builder.AppendFormat("and especially {0:U}!", favoriteFruit); | ||
@@ -132,0 +132,0 @@ builder.AppendFormat(" I eat {0} every day!", 10); |
@@ -9,3 +9,7 @@ | ||
export interface String extends StringConstructor, $String { | ||
export interface String extends $String, StringConstructor { | ||
prototype: globalThis.String; | ||
fromCharCode(...codes: number[]): string; | ||
fromCodePoint(...codePoints: number[]): string; | ||
raw(template: { raw: readonly string[] | ArrayLike<string>; }, ...substitutions: any[]): string; | ||
/** | ||
@@ -12,0 +16,0 @@ * @deprecated The property should not be used, and will be removed in future versions! Use `String.empty` instead. |
24578
3.81%321
7.36%