¿Cómo puedo usar preg_match
para ver si existen caracteres especiales [^'£$%^&*()}{@:'#~?><>,;@|\-=-_+-¬`]
en una cadena?caracteres especiales preg_match
Respuesta
[\W]+
coincidirá con cualquier carácter no verbal.
Gracias por su respuesta, pero solo necesito caracteres específicos como^'$ $%^& *()} {@:' # ~?><>,; @ | \ - = -_ + - ¬' – stefanosn
Normalmente, Diría que '[\ W]' aún es perfecto para usted, ya que un "carácter de palabra" se refiere a cualquier letra, número o guión bajo y excluye prácticamente todo lo demás. No estoy seguro de si incluye guiones. Entonces noté que el guión bajo estaba en la lista de caracteres que desea verificar. Como solo quiere encontrar caracteres individuales, puede ser más rápido usar 'explde()' y 'in_array()' en lugar de 'preg_match()', o simplemente usar un ciclo 'while()'. Aunque ninguno de estos son muy intuitivos. – stevendesu
¿Qué sucede si la cadena contiene caracteres Unicode? ¡Su expresión regular los excluye! – Emerald214
Use preg_match. Esta función toma una expresión regular (patrón) y la cadena del asunto y devuelve 1
si se produjo la coincidencia, 0
si no coincide, o false
si ocurre un error.
$input = 'foo';
$pattern = '/[\'\/~`\[email protected]#\$%\^&\*\(\)_\-\+=\{\}\[\]\|;:"\<\>,\.\?\\\]/';
if (preg_match($pattern, $input)){
// one or more matches occurred, i.e. a special character exists in $input
}
También puede especificar banderas y el desplazamiento de la Realizar una Concordancia de expresiones regulares función. Vea el enlace de documentación arriba.
¿Hay alguna referencia/enlace para símbolos individuales? – asterisk
Mi función hace la vida más fácil.
function has_specchar($x,$excludes=array()){
if (is_array($excludes)&&!empty($excludes)) {
foreach ($excludes as $exclude) {
$x=str_replace($exclude,'',$x);
}
}
if (preg_match('/[^a-z0-9 ]+/i',$x)) {
return true;
}
return false;
}
El segundo parámetro ($ excludes) se puede pasar con los valores que desea ignorar.
Uso
$string = 'testing_123';
if (has_specchar($string)) {
// special characters found
}
$string = 'testing_123';
$excludes = array('_');
if (has_specchar($string,$excludes)) { } // false
- 1. preg_match PHP para sólo números y letras, sin caracteres especiales
- 2. cómo buscar caracteres especiales php
- 3. Regex eliminar caracteres especiales
- 4. Caracteres especiales en XML
- 5. NSString Length - Caracteres especiales
- 6. caracteres especiales de mailto
- 7. caracteres especiales en sed
- 8. ajax publicar caracteres especiales
- 9. Lucene y caracteres especiales
- 10. sustituir caracteres especiales
- 11. Android Sqlite Caracteres especiales
- 12. Character Set Caracteres especiales
- 13. reemplazar caracteres especiales
- 14. NSURL con caracteres especiales
- 15. preg_match con caracteres internacionales y acentos
- 16. preg_match y caracteres latinos (no ingleses)?
- 17. Cómo convertir caracteres especiales a caracteres normales?
- 18. jQuery ajax caracteres especiales problemas
- 19. Buscando caracteres especiales en Google
- 20. Escapar caracteres especiales en SQL
- 21. file_get_contents - caracteres especiales en URL
- 22. ¿Cómo clasifica .NET caracteres especiales?
- 23. PHP: explotar usando caracteres especiales
- 24. filtro garbling Maven caracteres especiales
- 25. Caracteres especiales en PHP/MySQL
- 26. Mostrar caracteres especiales usando System.out.println
- 27. UnicodeWarning: caracteres especiales en Tkinter
- 28. escapando caracteres especiales usando sqlalchemy
- 29. Caracteres especiales en corchetes recreados
- 30. ¿Cómo puedo eliminar caracteres especiales?
definen "caracteres especiales" ... –
[^ '£ $%^& *()} {@:'? # ~><>,; @ | \ - = - _ + - ¬'] – stefanosn
¿Por qué quieres usar 'preg_match()'? Si todo lo que hace es verificar la existencia de estos caracteres, ¿por qué no utilizar 'strpos()'? – staticsan