Usage
nebula.isAlphanumeric(character)
Parameters
string
(Required) (String) The character or word to check
Default: None
allowWords
(Optional) (Boolean) Allow strings longer than 1 character
Default: true
Parameter Notes
The allowWords can be set to false to help detect meta keys vs. single character keys.
Examples
Call this function inside of a keydown to test the key.
jQuery("input#whatever").on('keydown paste', function(e){ if ( nebula.isAlphanumeric(e.key, false) ){ //False here indicates we only want single characters– so ignore meta keys like Escape //Do stuff if the key was a letter or number } });
Demo
Press a key to test if it is alphanumeric.
Remember: meta key names (like "Enter", "Shift", "Escape", etc.) are strings, so they will be detected as alphanumeric words! Set the allowWords
parameter to false
to check single characters.
Key Pressed:
Alphanumeric? (Single Character)
Alphanumeric? (Word)
Additional Notes
This allows lowercase or uppercase letters or numbers.
Source File
Located in /assets/js/modules/utilities.js on line 856.
No Hooks
This function does not have any filters or actions available. Request one?nebula.isAlphanumeric = function(string = '', allowWords = true){ if ( !allowWords && string.length > 1 ){ //Ignore meta keys whose "character" is a word (not a letter) return false; } const alphanumericRegex = new RegExp('^[a-zA-Z0-9]+$'); if ( string && alphanumericRegex.test(string) ){ return true; } return false; };
Override
To override or disable this JavaScript function, simply redeclare it with the exact same function name. Remember: Some functionality is conditionally loaded via dynamic imports, so if your function is not overriding properly, try listening for a DOM event (described below).
For non-module import functions:
nebula.isAlphanumeric = function(string, allowWords){ //Write your own code here, leave it blank, or return false. }
For dynamically imported module function overrides:
jQuery(window).on('load', function(){ nebula.isAlphanumeric = function(string, allowWords){ //Write your own code here, leave it blank, or return false. } });
Custom Nebula DOM events do also exist, so you could also try the following if the Window Load listener does not work:
jQuery(document).on('nebula_module_loaded', function(module){ //Note that the module variable is also available to know which module specifically was imported if ( typeof nebula.isAlphanumeric === 'function' ){ nebula.isAlphanumeric = function(string, allowWords){ //Write your own code here, leave it blank, or return false. } } });