Un límite de palabra \b
es una prueba, al igual que ^
y $
.
Cuando el motor regex (módulo de programa que implementa la búsqueda de expresiones regulares) se encuentra con \b
, comprueba que la posición en la cadena es un límite de palabra.
Hay tres posiciones diferentes que califican como límites de palabras:
- Al comienzo de la cadena, si el primer carácter de cadena es un carácter de palabra
\w
. - Entre dos caracteres en la cadena, donde uno es un carácter de palabra
\w
y el otro no. - Al final de la cadena, si el último carácter de la cadena es un carácter de palabra
\w
.
Por ejemplo, la expresión regular \bJava\b
se encontrará en Hello, Java!
, donde Java
es una palabra independiente, pero no en Hello, JavaScript!
.
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null
En la cadena Hello, Java!
las flechas que se muestran corresponden a \b
, ver imagen:
Entonces, coincide con el patrón \bHello\b
, porque:
- Al comienzo de la cadena coincide con la primera prueba:
\b
. - Luego coincide con la palabra
Hello
. - Luego, la prueba
\b
vuelve a coincidir, ya que estamos entreo
y una coma.
El patrón \bHello\b
también coincidiría. Pero no \bHel\b
(porque no hay límite de palabras después de l
) y tampoco Java!\b
(porque el signo de exclamación no es un carácter común \w
, entonces no hay límite de palabras después de eso).
alert( "Hello, Java!".match(/\bHello\b/) ); // Hello
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, Java!".match(/\bHell\b/) ); // null (sin coincidencia)
alert( "Hello, Java!".match(/\bJava!\b/) ); // null (sin coincidencia)
Podemos usar \b
no solo con palabras, sino también con dígitos.
Por ejemplo, el patrón \b\d\d\b
busca números independientes de 2 dígitos. En otras palabras, busca números de 2 dígitos que están rodeados por caracteres diferentes de \w
, como espacios o signos de puntuación (o texto de inicio/fin).
alert( "1 23 456 78".match(/\b\d\d\b/g) ); // 23,78
alert( "12,34,56".match(/\b\d\d\b/g) ); // 12,34,56
\b
no funciona para alfabetos no latinosLa prueba de límite de palabra \b
verifica que debe haber un \w
en un lado de la posición y "no \w
"- en el otro lado.
Pero \w
significa una letra latina a-z
(o un dígito o un guión bajo), por lo que la prueba no funciona para otros caracteres, p.ej.: letras cirílicas o jeroglíficos.