src/OnScreenKeyboard.js
function getCSSName(name) {

        // Convert name from possibly-CamelCase to hyphenated lowercase
        var cssName = name
               .replace(/([a-z])([A-Z])/g, '$1-$2')
               .replace(/[^A-Za-z0-9]+/g, '-')
               .toLowerCase();

        return cssName;

    }
function getCSSName(name) {

        // Convert name from possibly-CamelCase to hyphenated lowercase
        var cssName = name
               .replace(/([a-z])([A-Z])/g, '$1-$2')
               .replace(/[^A-Za-z0-9]+/g, '-')
               .toLowerCase();

        return cssName;

    }
function getCSSName ( name ) { // Convert name from possibly-CamelCase to hyphenated lowercase var cssName = name . replace ( / ([a-z])([A-Z]) / g , '$1-$2' ) . replace ( / [^A-Za-z0-9]+ / g , '-' ) . toLowerCase ( ) ; return cssName ; }
Given an arbitrary string representing the name of some component of the
on-screen keyboard, returns a string formatted for use as a CSS class
name. The result will be lowercase. Word boundaries previously denoted
by CamelCase will be replaced by individual hyphens, as will all
contiguous non-alphanumeric characters.

@private
@param {String} name
An arbitrary string representing the name of some component of the
on-screen keyboard.

@returns {String}
A string formatted for use as a CSS class name.
Given an arbitrary string representing the name of some component of the on - screen keyboard returns a string formatted for use as a CSS class name . The result will be lowercase . Word boundaries previously denoted by CamelCase will be replaced by individual hyphens as will all contiguous non - alphanumeric characters .