regular - javascript solo letras y espacios
RegEx para Javascript para permitir solo caracteres alfanuméricos (11)
En lugar de buscar una cadena alfanumérica válida, puede lograr esto indirectamente al verificar la cadena en busca de caracteres inválidos. Hazlo marcando cualquier cosa que coincida con el complemento de la cadena alfanumérica válida.
/[^a-z/d]/i
Aquí hay un ejemplo:
var alphanumeric = "someStringHere";
var myRegEx = /[^a-z/d]/i;
var isValid = !(myRegEx.test(alphanumeric));
Observe el operador lógico no en isValid
, ya que estoy probando si la cadena es falsa, no si es válida.
Necesito encontrar un registro que solo permita caracteres alfanuméricos. Hasta ahora, todos los que intento solo funcionan si la cadena es alfanumérica, lo que significa que contiene una letra y un número. Solo quiero uno que permita cualquiera y no requiera ambos.
Esto funcionará
^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$
Solo acepta caracteres alfanuméricos solo:
casos de prueba pasados:
dGgs1s23 - valid
12fUgdf - valid,
121232 - invalid,
abchfe - invalid,
abd()* - invalid,
42232^5$ - invalid
o
También puedes probar este. esta expresión satisfizo al menos un número y un carácter y no otros caracteres especiales
^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$
en angular puede probar como:
$scope.str = ''12fUgdf'';
var pattern = new RegExp(''^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$'');
$scope.testResult = pattern.test($scope.str);
Extienda el prototipo de cadena para usar en todo su proyecto
String.prototype.alphaNumeric = function() {
return this.replace(/[^a-z0-9]/gi,'''');
}
Uso:
"I don''t know what to say?".alphaNumeric();
//Idontknowwhattosay
Incluso mejor que Gayan Dissanayake
señaló.
/^[-/w/s]+$/
Ahora ^[a-zA-Z0-9]+$
se puede representar como ^/w+$
Es posible que desee utilizar / s en lugar de espacio. Tenga en cuenta que / s se ocupa de los espacios en blanco y no solo de un carácter de espacio.
Intente esto ... Reemplace su identificación de campo con #name ... az (de la a z), AZ (de la A a la Z), 0-9 (0 a 9)
jQuery(document).ready(function($){
$(''#name'').keypress(function (e) {
var regex = new RegExp("^[a-zA-Z0-9/s]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
return true;
}
e.preventDefault();
return false;
});
});
Parece que muchos usuarios han notado que estas expresiones regulares casi seguramente fallarán a menos que trabajemos estrictamente en inglés. Pero creo que hay un camino fácil que no sería tan limitado.
- haga una copia de su cadena en MAYÚSCULAS
- hacer una segunda copia en minúsculas
Los caracteres que coinciden en esas cadenas definitivamente no son de naturaleza alfabética.
let copy1 = originalString.toUpperCase();
let copy2 = originalString.toLowerCase();
for(let i=0; i<originalString.length; i++) {
let bIsAlphabetic = (copy1[i] != copy2[i]);
}
Opcionalmente, también puede detectar números con solo buscar los dígitos del 0 al 9.
Si quisiera devolver un resultado reemplazado, entonces esto funcionaría:
var a = ''Test123*** TEST'';
var b = a.replace(/[^a-z0-9]/gi,'''');
console.log(b);
Esto volvería:
Test123TEST
Tenga en cuenta que el gi es necesario porque significa global (no solo en el primer partido) y no distingue entre mayúsculas y minúsculas, por lo que tengo az en lugar de a-zA-Z. Y el ^ dentro de los paréntesis significa "cualquier cosa que no esté entre paréntesis".
ADVERTENCIA: alfanumérico es genial si eso es exactamente lo que quieres. Pero si está utilizando esto en un mercado internacional como el nombre o el área geográfica de una persona, entonces debe contar los caracteres Unicode, lo que no hará. Por ejemplo, si tiene un nombre como "Âlvarö", lo convertiría en "lvar".
Usa la palabra clase de personaje. Lo siguiente es equivalente a a ^[a-zA-Z0-9_]+$
:
^/w+$
Explicación:
- ^ inicio de cadena
- / w cualquier carácter de palabra (AZ, az, 0-9, _).
- $ fin de cadena
Utilice /[^/w]|_/g
si no desea hacer coincidir el guión bajo.
/^([a-zA-Z0-9 _-]+)$/
la expresión regular anterior permite espacios en el costado de una cuerda y restringe los caracteres especiales. Solo permite az, AZ, 0-9, Espacio, Subrayado y guión.
/^[a-z0-9]+$/i
^ Start of string
[a-z0-9] a or b or c or ... z or 0 or 1 or ... 9
+ one or more times (change to * to allow empty string)
$ end of string
/i case-insensitive
^/s*([0-9a-zA-Z]*)/s*$
o, si quieres un mínimo de un personaje:
^/s*([0-9a-zA-Z]+)/s*$
Los corchetes indican un conjunto de caracteres. ^ es el inicio de la entrada. $ es el final de la entrada (o nueva línea, dependiendo de sus opciones). / s es el espacio en blanco.
El espacio en blanco antes y después es opcional.
Los paréntesis son el operador de agrupación que le permite extraer la información que desea.
EDITAR: eliminé el uso erróneo del conjunto de caracteres / w.