JSFiddle - React, Tailwind, and code Playground
by Peter Aad
HTML
<input type="text" class="valid-char" />
JavaScript
validationOfChar();
// removed from anonyous function area so that it's accessible from manage-details.js as well
function validationOfChar() {
// flag for pasted event
var pasted = false;
var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile");
var cyrillicAlphabet = /[\u0400-\u04ff]|[\u0500-\u052f]|[\u2de0-\u2dff]|[\ua640-\ua69f]|[\u1d2b-\u1d78]/g;
var arabicAlphabet = /[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]/g;
var checkChar = function (v, elem) {alert(5);
// Disallow anything matching the regex pattern
// For more on JavaScript Regular Expressions, look here: https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions
var key = v;
var ruChar = cyrillicAlphabet.test(key);
var arChar = arabicAlphabet.test(key);
if (ruChar || arChar) {
var el = elem;
if (!pasted) { // if not pasted, remove the last char
var str = el.value;
str = str.substring(0, str.length - 1);
el.value = str;
} else { // if pasted, remove the whole lot
el.value = "";
}
displayMessage;
} // reset pasted flag
pasted = false;
return false;
};
var displayMessage = function () {
var msgAlert = "stopped";
alert(msgAlert);
}
var handler = function () {
var char = this.value.slice(-1);
checkChar(char, this);
};
if (!isAndroid) {
$(".valid-char").keypress(function (event) {
var key = String.fromCharCode(event.which);
var ruChar = cyrillicAlphabet.test(key);
var arChar = arabicAlphabet.test(key);
console.log("ar: "+arChar+", ru:"+ruChar);
if (ruChar || arChar){
displayMessage();
return false;
...