me devuelve pos = 2 (porque this contiene is) pero yo quiero q me devuelva pos = 5 (que encuentre exactamente el 'is'). Y usando expresiones regulares me devuelve un pos = -1 (no lo encuentra)
var aux1 = 'this is good';
var aux2 = 'is';
var aux3 = new RegExp("^" + aux2 + "$" );
Por defecto no lo admite, pero puedes simularlo con slice
aux1.slice(posInicial).search('\\b'+ aux2 +'\\b')
Ten en cuenta 2 condiciones:
1.- El valor que te devuelve es la posición en el subarray (por ejemplo slice(1) te devolverá 4, no 5), tendrás que calcular la posición sumándole tu variable posInicial (1 + 4 = 5)
2.- Como comparas substrings, puede darse el caso que te den falsos positivos, por ejemplo, en la posición 2 evalúas "is is good". Por lo que te devolverá la posición 0 (ten cuidado con eso.
Otro método es hacer un .split(' ') y comparar palabra a palabra con un bucle. Investiga un poco y usa la forma que más te convenga.
var aux1 = 'this is good';
var aux2 = 'is';
var pos = aux1.indexOf(aux2); // pos = 2
me devuelve pos = 2 (porque this contiene is) pero yo quiero q me devuelva pos = 5 (que encuentre exactamente el 'is'). Y usando expresiones regulares me devuelve un pos = -1 (no lo encuentra)
var aux1 = 'this is good';
var aux2 = 'is';
var aux3 = new RegExp("^" + aux2 + "$" );
var pos = aux1.indexOf(aux3); // pos = -1
¿qué estoy haciendo mal? Muchas gracias!!
16/05/2016 11:38
var aux2 = 'is';
aux1.search('\\b'+ aux2 +'\\b')
16/05/2016 15:41
sabes si el search admite como 2do parámetro una posición de la que partir? al igual que el indexOf ?
aux1.search('\\b'+ aux2 +'\\b', posInicial);
16/05/2016 16:06
aux1.slice(posInicial).search('\\b'+ aux2 +'\\b')
Ten en cuenta 2 condiciones:
1.- El valor que te devuelve es la posición en el subarray (por ejemplo slice(1) te devolverá 4, no 5), tendrás que calcular la posición sumándole tu variable posInicial (1 + 4 = 5)
2.- Como comparas substrings, puede darse el caso que te den falsos positivos, por ejemplo, en la posición 2 evalúas "is is good". Por lo que te devolverá la posición 0 (ten cuidado con eso.
Otro método es hacer un .split(' ') y comparar palabra a palabra con un bucle. Investiga un poco y usa la forma que más te convenga.
17/05/2016 09:09