|
@@ -50,8 +50,6 @@ class StringTools {
|
|
return untyped s.__URLEncode();
|
|
return untyped s.__URLEncode();
|
|
#elseif java
|
|
#elseif java
|
|
return postProcessUrlEncode(java.net.URLEncoder.encode(s, "UTF-8"));
|
|
return postProcessUrlEncode(java.net.URLEncoder.encode(s, "UTF-8"));
|
|
- #elseif cs
|
|
|
|
- return untyped cs.system.Uri.EscapeDataString(s);
|
|
|
|
#elseif python
|
|
#elseif python
|
|
return python.lib.urllib.Parse.quote(s, "");
|
|
return python.lib.urllib.Parse.quote(s, "");
|
|
#elseif hl
|
|
#elseif hl
|
|
@@ -121,8 +119,6 @@ class StringTools {
|
|
return java.net.URLDecoder.decode(s, "UTF-8")
|
|
return java.net.URLDecoder.decode(s, "UTF-8")
|
|
catch (e:Dynamic)
|
|
catch (e:Dynamic)
|
|
throw e;
|
|
throw e;
|
|
- #elseif cs
|
|
|
|
- return untyped cs.system.Uri.UnescapeDataString(s);
|
|
|
|
#elseif python
|
|
#elseif python
|
|
return python.lib.urllib.Parse.unquote(s);
|
|
return python.lib.urllib.Parse.unquote(s);
|
|
#elseif hl
|
|
#elseif hl
|
|
@@ -223,11 +219,9 @@ class StringTools {
|
|
|
|
|
|
If `start` is the empty String `""`, the result is true.
|
|
If `start` is the empty String `""`, the result is true.
|
|
**/
|
|
**/
|
|
- public static #if (cs || java || python || (js && js_es >= 6)) inline #end function startsWith(s:String, start:String):Bool {
|
|
|
|
|
|
+ public static #if (java || python || (js && js_es >= 6)) inline #end function startsWith(s:String, start:String):Bool {
|
|
#if java
|
|
#if java
|
|
return (cast s : java.NativeString).startsWith(start);
|
|
return (cast s : java.NativeString).startsWith(start);
|
|
- #elseif cs
|
|
|
|
- return untyped s.StartsWith(start);
|
|
|
|
#elseif hl
|
|
#elseif hl
|
|
return @:privateAccess (s.length >= start.length && s.bytes.compare(0, start.bytes, 0, start.length << 1) == 0);
|
|
return @:privateAccess (s.length >= start.length && s.bytes.compare(0, start.bytes, 0, start.length << 1) == 0);
|
|
#elseif python
|
|
#elseif python
|
|
@@ -248,11 +242,9 @@ class StringTools {
|
|
|
|
|
|
If `end` is the empty String `""`, the result is true.
|
|
If `end` is the empty String `""`, the result is true.
|
|
**/
|
|
**/
|
|
- public static #if (cs || java || python || (js && js_es >= 6)) inline #end function endsWith(s:String, end:String):Bool {
|
|
|
|
|
|
+ public static #if (java || python || (js && js_es >= 6)) inline #end function endsWith(s:String, end:String):Bool {
|
|
#if java
|
|
#if java
|
|
return (cast s : java.NativeString).endsWith(end);
|
|
return (cast s : java.NativeString).endsWith(end);
|
|
- #elseif cs
|
|
|
|
- return untyped s.EndsWith(end);
|
|
|
|
#elseif hl
|
|
#elseif hl
|
|
var elen = end.length;
|
|
var elen = end.length;
|
|
var slen = s.length;
|
|
var slen = s.length;
|
|
@@ -297,10 +289,7 @@ class StringTools {
|
|
If `s` is the empty String `""` or consists only of space characters, the
|
|
If `s` is the empty String `""` or consists only of space characters, the
|
|
result is the empty String `""`.
|
|
result is the empty String `""`.
|
|
**/
|
|
**/
|
|
- public #if cs inline #end static function ltrim(s:String):String {
|
|
|
|
- #if cs
|
|
|
|
- return untyped s.TrimStart();
|
|
|
|
- #else
|
|
|
|
|
|
+ public inline static function ltrim(s:String):String {
|
|
var l = s.length;
|
|
var l = s.length;
|
|
var r = 0;
|
|
var r = 0;
|
|
while (r < l && isSpace(s, r)) {
|
|
while (r < l && isSpace(s, r)) {
|
|
@@ -310,7 +299,6 @@ class StringTools {
|
|
return s.substr(r, l - r);
|
|
return s.substr(r, l - r);
|
|
else
|
|
else
|
|
return s;
|
|
return s;
|
|
- #end
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -322,10 +310,7 @@ class StringTools {
|
|
If `s` is the empty String `""` or consists only of space characters, the
|
|
If `s` is the empty String `""` or consists only of space characters, the
|
|
result is the empty String `""`.
|
|
result is the empty String `""`.
|
|
**/
|
|
**/
|
|
- public #if cs inline #end static function rtrim(s:String):String {
|
|
|
|
- #if cs
|
|
|
|
- return untyped s.TrimEnd();
|
|
|
|
- #else
|
|
|
|
|
|
+ public inline static function rtrim(s:String):String {
|
|
var l = s.length;
|
|
var l = s.length;
|
|
var r = 0;
|
|
var r = 0;
|
|
while (r < l && isSpace(s, l - r - 1)) {
|
|
while (r < l && isSpace(s, l - r - 1)) {
|
|
@@ -336,7 +321,6 @@ class StringTools {
|
|
} else {
|
|
} else {
|
|
return s;
|
|
return s;
|
|
}
|
|
}
|
|
- #end
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -344,10 +328,8 @@ class StringTools {
|
|
|
|
|
|
This is a convenience function for `ltrim(rtrim(s))`.
|
|
This is a convenience function for `ltrim(rtrim(s))`.
|
|
**/
|
|
**/
|
|
- public #if (cs || java) inline #end static function trim(s:String):String {
|
|
|
|
- #if cs
|
|
|
|
- return untyped s.Trim();
|
|
|
|
- #elseif java
|
|
|
|
|
|
+ public #if java inline #end static function trim(s:String):String {
|
|
|
|
+ #if java
|
|
return (cast s : java.NativeString).trim();
|
|
return (cast s : java.NativeString).trim();
|
|
#else
|
|
#else
|
|
return ltrim(rtrim(s));
|
|
return ltrim(rtrim(s));
|
|
@@ -419,11 +401,6 @@ class StringTools {
|
|
return s.split(sub).join(by);
|
|
return s.split(sub).join(by);
|
|
else
|
|
else
|
|
return (cast s : java.NativeString).replace(sub, by);
|
|
return (cast s : java.NativeString).replace(sub, by);
|
|
- #elseif cs
|
|
|
|
- if (sub.length == 0)
|
|
|
|
- return s.split(sub).join(by);
|
|
|
|
- else
|
|
|
|
- return untyped s.Replace(sub, by);
|
|
|
|
#else
|
|
#else
|
|
return s.split(sub).join(by);
|
|
return s.split(sub).join(by);
|
|
#end
|
|
#end
|
|
@@ -486,8 +463,6 @@ class StringTools {
|
|
return untyped s.cca(index);
|
|
return untyped s.cca(index);
|
|
#elseif java
|
|
#elseif java
|
|
return (index < s.length) ? cast(_charAt(s, index), Int) : -1;
|
|
return (index < s.length) ? cast(_charAt(s, index), Int) : -1;
|
|
- #elseif cs
|
|
|
|
- return (cast(index, UInt) < s.length) ? cast(s[index], Int) : -1;
|
|
|
|
#elseif js
|
|
#elseif js
|
|
return (cast s).charCodeAt(index);
|
|
return (cast s).charCodeAt(index);
|
|
#elseif python
|
|
#elseif python
|
|
@@ -525,8 +500,6 @@ class StringTools {
|
|
return untyped s.cca(index);
|
|
return untyped s.cca(index);
|
|
#elseif java
|
|
#elseif java
|
|
return cast(_charAt(s, index), Int);
|
|
return cast(_charAt(s, index), Int);
|
|
- #elseif cs
|
|
|
|
- return cast(s[index], Int);
|
|
|
|
#elseif js
|
|
#elseif js
|
|
return (cast s).charCodeAt(index);
|
|
return (cast s).charCodeAt(index);
|
|
#elseif python
|
|
#elseif python
|
|
@@ -576,7 +549,7 @@ class StringTools {
|
|
return c != c; // fast NaN
|
|
return c != c; // fast NaN
|
|
#elseif (neko || lua || eval)
|
|
#elseif (neko || lua || eval)
|
|
return c == null;
|
|
return c == null;
|
|
- #elseif (cs || java || python)
|
|
|
|
|
|
+ #elseif (java || python)
|
|
return c == -1;
|
|
return c == -1;
|
|
#else
|
|
#else
|
|
return false;
|
|
return false;
|