Заменить предложения на регулярное выражение в JS - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть следующий «словарь»:

var dictionary = {
    "Log in again": "Just do it again",
    "Test phrase": "Lorem ipsum",
    "word": "other word"
}

После загрузки html-страницы я хочу, чтобы они также загружались.

Вот полный источник: http://jsfiddle.net/GMJ7y/

Прямо сейчас я борюсь: иногда это слово, иногда полное предложение. Прямо сейчас я могу заставить его работать только со словами.

Кто-нибудь знает, как я могу сделать предложения?

1 Ответ

4 голосов
/ 08 ноября 2011

Следующее решение дает желаемый результат, и также более эффективно. Я включил только соответствующий код, см. Связанную скрипту для реализации.

var generatedReplace = [];         // Create list
for(var key in dictionary) {       // Loop through the dictionary
    var word = key.replace(/([[^$.|?*+(){}])/g, '\\$1');
    generatedReplace.push(word);   // Adds RegExp-string to the list
}
generatedReplace = "\\b(?:" + generatedReplace.join("|") + ")\\b"; //Finish RegExp
generatedReplace = new RegExp(generatedReplace, "g");          // Create RegExp

// Implementation:
$("body *").replaceText(generatedReplace, get_definition );

Скрипка: http://jsfiddle.net/GMJ7y/13/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...