(js) New method String.prototype.fromCSSIdentifier
parent
a70ea38572
commit
5435c2dd04
|
@ -98,22 +98,39 @@ String.prototype.asDate = function () {
|
|||
return newDate;
|
||||
};
|
||||
|
||||
String.prototype.asCSSIdentifier = function() {
|
||||
var characters = [ '_' , '\\.', '#' , '@' , '\\*', ':' , ';' , ',' , ' ',
|
||||
'\\(', '\\)', '\\[', '\\]', '\\{', '\\}',
|
||||
"'", '"', '&', '\\+' ];
|
||||
var escapeds = [ '_U_', '_D_', '_H_', '_A_', '_S_', '_C_', '_SC_', '_CO_', '_SP_',
|
||||
'_LP_', '_RP_', '_LS_', '_RQ_', '_LC_', '_RC_',
|
||||
'_SQ_', '_DQ_', '_AM_', '_P_' ];
|
||||
RegExp.escape = function(text) {
|
||||
return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
|
||||
}
|
||||
|
||||
var css_invalid_characters = [ '_' , '.', '#' , '@' , '*', ':' , ';' , ',' , ' ',
|
||||
'(', ')', '[', ']', '{', '}',
|
||||
"'", '"', '&', '+' ];
|
||||
var css_escape_characters = [ '_U_', '_D_', '_H_', '_A_', '_S_', '_C_', '_SC_', '_CO_', '_SP_',
|
||||
'_LP_', '_RP_', '_LS_', '_RQ_', '_LC_', '_RC_',
|
||||
'_SQ_', '_DQ_', '_AM_', '_P_' ];
|
||||
|
||||
String.prototype.asCSSIdentifier = function() {
|
||||
var newString = this;
|
||||
for (var i = 0; i < characters.length; i++) {
|
||||
var re = new RegExp(characters[i], 'g');
|
||||
newString = newString.replace(re, escapeds[i]);
|
||||
for (var i = 0; i < css_invalid_characters.length; i++) {
|
||||
var re = new RegExp(RegExp.escape(css_invalid_characters[i]), 'g');
|
||||
newString = newString.replace(re, css_escape_characters[i]);
|
||||
}
|
||||
|
||||
if (/^\d+/.test(newString)) {
|
||||
if (/^\d/.test(newString))
|
||||
newString = '_' + newString;
|
||||
|
||||
return newString;
|
||||
};
|
||||
|
||||
String.prototype.fromCSSIdentifier = function() {
|
||||
var newString = this;
|
||||
|
||||
if (/^_\d/.test(newString))
|
||||
newString = newString.substring(1);
|
||||
|
||||
for (var i = 0; i < css_escape_characters.length; i++) {
|
||||
var re = new RegExp(css_escape_characters[i], 'g');
|
||||
newString = newString.replace(re, css_invalid_characters[i]);
|
||||
}
|
||||
|
||||
return newString;
|
||||
|
|
Loading…
Reference in New Issue