Tengo un viariable que contiene algo como esto ab_123456789
cómo verificar los primeros tres caracteres en una variable?
¿Cómo puedo comprobar si la variable comienza con ab_
?
gracias, sebastian
Tengo un viariable que contiene algo como esto ab_123456789
cómo verificar los primeros tres caracteres en una variable?
¿Cómo puedo comprobar si la variable comienza con ab_
?
gracias, sebastian
Otra forma usando substr
:
if (substr('ab_123456789', 0, 3) === 'ab_')
Aquí substr
se utiliza para tomar los primeros 3 bytes que comienzan en la posición 0 como una cadena que se compara entonces con 'ab_'
. Si desea agregar insensibilidad a las mayúsculas y minúsculas, use strcasecmp
.
Editar para hacer el uso más cómodo, usted podría utilizar el startsWith
siguiente función:
function startsWith($str, $prefix, $case_sensitivity=false) {
if ($case_sensitivity) {
return substr($str, 0, strlen($prefix)) === $prefix;
} else {
return strcasecmp(substr($str, 0, strlen($prefix)), $prefix) === 0;
}
}
Tenga en cuenta que estas funciones no son compatibles con caracteres de varios bytes como se comparan sólo bytes. Una función equivalente con soporte multi-byte podría tener este aspecto:
function mb_startsWith($str, $prefix, $case_sensitivity=false) {
if ($case_sensitivity) {
return mb_substr($str, 0, mb_strlen($prefix)) === $prefix;
} else {
return mb_strtolower(mb_substr($str, 0, mb_strlen($prefix))) === mb_strtolower($prefix);
}
}
Aquí se asume la codificación de caracteres de ambas cadenas a ser el internal character encoding.
utilizar expresiones regulares
$var = "ab_123456789";
if(preg_match('/^ab_/', $var, $matches)){
/*your code here*/
}
Es bastante fácil, ya que la cadena se puede acceder como un array de caracteres. Entonces solo tiene que hacer algo como:
if ($var[0] == "a" && $var[1] == "b" && $var[2] == "c")
return true
También podría utilizar una función de búsqueda de la biblioteca php.
Las cadenas no son matrices en PHP. –
@Daniel Egeberg: Pero se puede acceder a cadenas como matrices. Consulte http://php.net/manual/en/language.types.string.php#language.types.string.substr – Gumbo
No es un objeto Array, pero puede acceder a él como lo hace para una matriz. –
La manera más fácil sería obtener una cadena secundaria. p.ej. substr('ab_123456789', 0, 3);
preg_match devolverá 0 si nada coincide o un número entero que representa el número de veces que se encontró la coincidencia. – gehsekky
(bool) 0 === falso -> true – cypher