1 /* ************************************************************************
3 qooxdoo - the new era of web development
8 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
11 LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
14 * Sebastian Werner (wpbasti)
15 * Andreas Ecker (ecker)
17 ************************************************************************ */
19 /* ************************************************************************
23 ************************************************************************ */
25 qx.OO.defineClass("qx.lang.String");
27 qx.Class.toCamelCase = function(str)
29 var vArr = str.split("-"), vLength = vArr.length;
35 var vNew = str.indexOf("-") == 0 ? vArr[0].charAt(0).toUpperCase() + vArr[0].substring(1) : vArr[0];
37 for (var vPart, i=1; i<vLength; i++)
40 vNew += vPart.charAt(0).toUpperCase() + vPart.substring(1);
46 qx.Class.trimLeft = function(str) {
47 return str.replace(/^\s+/, "");
50 qx.Class.trimRight = function(str) {
51 return str.replace(/\s+$/, "");
54 qx.Class.trim = function(str) {
55 return str.replace(/^\s+|\s+$/g, "");
58 qx.Class.stripTags = function(str) {
59 return str.replace(/<\/?[^>]+>/gi, "");
62 qx.Class.startsWith = function(fullstr, substr) {
63 return !fullstr.indexOf(substr);
66 qx.Class.endsWith = function(fullstr, substr) {
67 return fullstr.lastIndexOf(substr) === fullstr.length-substr.length;
70 qx.Class.pad = function(str, length, ch)
72 if (typeof ch === "undefined") {
78 for (var i=length, l=str.length; l<i; l++) {
85 qx.Class.toFirstUp = function(str) {
86 return str.charAt(0).toUpperCase() + str.substr(1);
89 qx.Class.add = function(str, v, sep)
101 if (qx.util.Validation.isInvalid(sep)) {
105 var a = str.split(sep);
107 if (a.indexOf(v) == -1)
119 qx.Class.remove = function(str, v, sep)
121 if (str == v || str == "")
127 if (qx.util.Validation.isInvalid(sep)) {
131 var a = str.split(sep);
132 var p = a.indexOf(v);
138 do { a.splice(p, 1); }
139 while((p = a.indexOf(v)) != -1);
145 qx.Class.contains = function(str, s) {
146 return str.indexOf(s) != -1;
151 * Escapes all chars that have a special meaning in regular expressions
153 * @param str {string} the string where to escape the chars.
154 * @return {string} the string with the escaped chars.
156 qx.Class.escapeRegexpChars = function(str) {
157 return str.replace(/([\\\.\(\)\[\]\{\}\^\$\?\+\*])/g, "\\$1");