UNPKG

starling-framework

Version:

A fast, productive library for 2D cross-platform development.

272 lines (255 loc) 6.7 kB
// 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("&quot;"); } else { buf.addChar(code1); } break; case 38: buf.add("&amp;"); break; case 39: if(quotes) { buf.add("&#039;"); } else { buf.addChar(code1); } break; case 60: buf.add("&lt;"); break; case 62: buf.add("&gt;"); break; default: buf.addChar(code1); } } return buf.toString(); } StringTools.htmlUnescape = function(s) { return s.split("&gt;").join(">").split("&lt;").join("<").split("&quot;").join("\"").split("&#039;").join("'").split("&amp;").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;