2012-04-28 3 views
0

Я разбираю различные XML-файлы с помощью jQuery и реализовал функцию поиска, чтобы найти из определенного слова или фразы в текущем выбранном файле, но у меня небольшая проблема с ниже линии:сопоставление точной строки поиска в jquery

$("LINE:contains(" + query + ")",currentContext).each(function(){ 

сам поиск работает прекрасно, однако, эта линия извлечения все слова, содержащие запрос. Например, если я хочу найти слово «сын», он извлекает «сезон».

Я понимаю, что это поиск любой строки, содержащей «сын». Из того, что я видел от просмотра, является то, что .filter() может решить мою проблему, но я не уверен, как это реализовать в моем коде, я пробовал что-то вроде $("LINE").filter(query,currentContext).each(function(), но безрезультатно, поэтому любая помощь будет высоко оценена.

короткий пример одного из файлов XML можно посмотреть здесь: http://pastebin.com/1tqhpH4W

Большое спасибо заранее!

+1

Я не такой опытный с регулярным выражением, как я хотел бы быть, но ваш ответ, вероятно, использовать 'somestring.match (/ \ BSON \ б /)'. Я не уверен, правильно ли это, но '\ b' помещает границу слова« сын », и вам нужно что-то подобное. – Marc

+0

Я тот же чувак, хочу подтянуться над регулярным выражением, а javascript вообще, ваше право и @VisioN получили его там, просто нужно обернуть запрос в «// b», чтобы установить границу слова. спасибо за вход чувак! – Michael

+0

yep VisioN сделал тяжелый подъем там, я просто догадывался. Рад, что это сработало для вас! – Marc

ответ

1

Как насчет чего-то подобного?

var word = "son"; 
$("LINE", currentContext).filter(function() { 
    return new RegExp("\\b" + word + "\\b").test($(this).text()); 
}).each(function() { ... }); 
+0

вот что мне нужно! не был уверен, понадобится ли ему другое регулярное выражение или я могу просто использовать фильтр. много спасибо чувак! – Michael

+0

Добро пожаловать;) – VisioN

Смежные вопросы