starling-framework
Version:
A fast, productive library for 2D cross-platform development.
272 lines (255 loc) • 6.7 kB
JavaScript
// Class: StringTools
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./hxClasses_stub").default;
var $hxEnums = require("./hxEnums_stub").default;
var $import = require("./import_stub").default;
function StringBuf() {return require("./StringBuf");}
function haxe_iterators_StringIteratorUnicode() {return require("./haxe/iterators/StringIteratorUnicode");}
function HxOverrides() {return require("./HxOverrides");}
function haxe_iterators_StringIterator() {return require("./haxe/iterators/StringIterator");}
function haxe_iterators_StringKeyValueIterator() {return require("./haxe/iterators/StringKeyValueIterator");}
function EReg() {return require("./EReg");}
function haxe_SysTools() {return require("./haxe/SysTools");}
// Constructor
var StringTools = function(){}
// Meta
StringTools.__name__ = "StringTools";
StringTools.__isInterface__ = false;
StringTools.prototype = {
};
StringTools.prototype.__class__ = StringTools.prototype.constructor = $hxClasses["StringTools"] = StringTools;
// Init
// Statics
StringTools.urlEncode = function(s) {
return encodeURIComponent(s);
}
StringTools.urlDecode = function(s) {
return decodeURIComponent(s.split("+").join(" "));
}
StringTools.htmlEscape = function(s,quotes) {
var buf = new (StringBuf().default)();
var code = new (haxe_iterators_StringIteratorUnicode().default)(s);
while(code.hasNext()) {
var code1 = code.next();
switch(code1) {
case 34:
if(quotes) {
buf.add(""");
} else {
buf.addChar(code1);
}
break;
case 38:
buf.add("&");
break;
case 39:
if(quotes) {
buf.add("'");
} else {
buf.addChar(code1);
}
break;
case 60:
buf.add("<");
break;
case 62:
buf.add(">");
break;
default:
buf.addChar(code1);
}
}
return buf.toString();
}
StringTools.htmlUnescape = function(s) {
return s.split(">").join(">").split("<").join("<").split(""").join("\"").split("'").join("'").split("&").join("&");
}
StringTools.contains = function(s,value) {
return s.indexOf(value) != -1;
}
StringTools.startsWith = function(s,start) {
if(s.length >= start.length) {
return s.lastIndexOf(start,0) == 0;
} else {
return false;
}
}
StringTools.endsWith = function(s,end) {
var elen = end.length;
var slen = s.length;
if(slen >= elen) {
return s.indexOf(end,slen - elen) == slen - elen;
} else {
return false;
}
}
StringTools.isSpace = function(s,pos) {
var c = (HxOverrides().default).cca(s,pos);
if(!(c > 8 && c < 14)) {
return c == 32;
} else {
return true;
}
}
StringTools.ltrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,r)) ++r;
if(r > 0) {
return (HxOverrides().default).substr(s,r,l - r);
} else {
return s;
}
}
StringTools.rtrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
if(r > 0) {
return (HxOverrides().default).substr(s,0,l - r);
} else {
return s;
}
}
StringTools.trim = function(s) {
return StringTools.ltrim(StringTools.rtrim(s));
}
StringTools.lpad = function(s,c,l) {
if(c.length <= 0) {
return s;
}
var buf = new (StringBuf().default)();
l -= s.length;
while(buf.get_length() < l) buf.add(c);
buf.add(s);
return buf.toString();
}
StringTools.rpad = function(s,c,l) {
if(c.length <= 0) {
return s;
}
var buf = new (StringBuf().default)();
buf.add(s);
while(buf.get_length() < l) buf.add(c);
return buf.toString();
}
StringTools.replace = function(s,sub,by) {
return s.split(sub).join(by);
}
StringTools.hex = function(n,digits) {
var s = "";
var hexChars = "0123456789ABCDEF";
while(true) {
s = hexChars.charAt(n & 15) + s;
n >>>= 4;
if(!(n > 0)) {
break;
}
}
if(digits != null) {
while(s.length < digits) s = "0" + s;
}
return s;
}
StringTools.fastCodeAt = function(s,index) {
return s.charCodeAt(index);
}
StringTools.iterator = function(s) {
return new (haxe_iterators_StringIterator().default)(s);
}
StringTools.keyValueIterator = function(s) {
return new (haxe_iterators_StringKeyValueIterator().default)(s);
}
StringTools.isEof = function(c) {
return c != c;
}
StringTools.quoteUnixArg = function(argument) {
if(argument == "") {
return "''";
} else if(!new (EReg().default)("[^a-zA-Z0-9_@%+=:,./-]","").match(argument)) {
return argument;
} else {
return "'" + StringTools.replace(argument,"'","'\"'\"'") + "'";
}
}
StringTools.quoteWinArg = function(argument,escapeMetaCharacters) {
var argument1 = argument;
if(!new (EReg().default)("^[^ \t\\\\\"]+$","").match(argument1)) {
var result = new (StringBuf().default)();
var needquote = argument1.indexOf(" ") != -1 || argument1.indexOf("\t") != -1 || argument1 == "";
if(needquote) {
result.add("\"");
}
var bs_buf = new (StringBuf().default)();
var _g = 0;
var _g1 = argument1.length;
while(_g < _g1) {
var i = _g++;
var _g2 = (HxOverrides().default).cca(argument1,i);
if(_g2 == null) {
var c = _g2;
if(bs_buf.get_length() > 0) {
result.add(bs_buf.toString());
bs_buf = new (StringBuf().default)();
}
result.addChar(c);
} else {
switch(_g2) {
case 34:
var bs = bs_buf.toString();
result.add(bs);
result.add(bs);
bs_buf = new (StringBuf().default)();
result.add("\\\"");
break;
case 92:
bs_buf.add("\\");
break;
default:
var c1 = _g2;
if(bs_buf.get_length() > 0) {
result.add(bs_buf.toString());
bs_buf = new (StringBuf().default)();
}
result.addChar(c1);
}
}
}
result.add(bs_buf.toString());
if(needquote) {
result.add(bs_buf.toString());
result.add("\"");
}
argument1 = result.toString();
}
if(escapeMetaCharacters) {
var result1 = new (StringBuf().default)();
var _g3 = 0;
var _g11 = argument1.length;
while(_g3 < _g11) {
var i1 = _g3++;
var c2 = (HxOverrides().default).cca(argument1,i1);
if((haxe_SysTools().default).winMetaCharacters.indexOf(c2) >= 0) {
result1.addChar(94);
}
result1.addChar(c2);
}
return result1.toString();
} else {
return argument1;
}
}
StringTools.utf16CodePointAt = function(s,index) {
var c = StringTools.fastCodeAt(s,index);
if(c >= 55296 && c <= 56319) {
c = c - 55232 << 10 | StringTools.fastCodeAt(s,index + 1) & 1023;
}
return c;
}
StringTools.winMetaCharacters = (haxe_SysTools().default).winMetaCharacters
StringTools.MIN_SURROGATE_CODE_POINT = 65536
// Export
exports.default = StringTools;