1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-08-17 14:37:58 +00:00
seahub/media/aloha-0.22.7/lib/util/strings.js
llj 720ac28c22 [aloha] upgraded to 0.22.7 and added textcolor plugin
* textcolor: fixed plugin bugs, added translation for zh
* image: fixed default.jpg src bug
* added 'ru' support for seaf edit
* rm aloha-0.22.3 and ununsed files in aloha-0.22.7
2013-01-15 14:48:04 +08:00

86 lines
2.6 KiB
JavaScript

/* strings.js is part of Aloha Editor project http://aloha-editor.org
*
* Aloha Editor is a WYSIWYG HTML5 inline editing library and editor.
* Copyright (c) 2010-2012 Gentics Software GmbH, Vienna, Austria.
* Contributors http://aloha-editor.org/contribution.php
*
* Aloha Editor is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* Aloha Editor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* As an additional permission to the GNU GPL version 2, you may distribute
* non-source (e.g., minimized or compacted) forms of the Aloha-Editor
* source code without the copy of the GNU GPL normally required,
* provided you include this license notice and a URL through which
* recipients can access the Corresponding Source.
*/
define(['jquery'], function ($) {
'use strict';
var spacesRx = /\s+/;
/**
* Splits a string into individual words.
*
* Words are non-empty sequences of non-space characaters.
*/
function words(str) {
var list = str.split(spacesRx);
// " x ".split(/\s+/) => ["", "x", ""] (Chrome)
// "".split(/\s+/) => [""] (Chrome)
if (list.length && list[0] === "") {
list.shift();
}
if (list.length && list[list.length - 1] === "") {
list.pop();
}
return list;
}
/**
* Converst a dashes form into camel cased form.
*
* For example 'data-my-attr' becomes 'dataMyAttr'.
*
* @param {string} s
* Should be all lowercase and should not begin with a dash
*/
function dashesToCamelCase(s) {
return s.replace(/[\-]([a-z])/gi, function (all, upper) {
return upper.toUpperCase();
});
}
/**
* Converts a camel cased form into dashes form.
*
* For example
* 'dataMyAttr' becomes 'data-my-attr',
* 'dataAB' becomes 'data-a-b'.
*
* @param {string} s
* Should begin with a lowercase letter and should not contain dashes.
*/
function camelCaseToDashes(s) {
return s.replace(/[A-Z]/g, function (match) {
return '-' + match.toLowerCase();
});
}
return {
'words': words,
'dashesToCamelCase': dashesToCamelCase,
'camelCaseToDashes': camelCaseToDashes
};
});