diff --git a/jquery.highlight.js b/jquery.highlight.js index 9dcf3c7..4a961d1 100644 --- a/jquery.highlight.js +++ b/jquery.highlight.js @@ -80,7 +80,7 @@ jQuery.fn.unhighlight = function (options) { }; jQuery.fn.highlight = function (words, options) { - var settings = { className: 'highlight', element: 'span', caseSensitive: false, wordsOnly: false }; + var settings = { className: 'highlight', element: 'span', caseSensitive: false, wordsOnly: false, pattern: undefined }; jQuery.extend(settings, options); if (words.constructor === String) { @@ -95,14 +95,17 @@ jQuery.fn.highlight = function (words, options) { if (words.length == 0) { return this; }; var flag = settings.caseSensitive ? "" : "i"; - var pattern = "(" + words.join("|") + ")"; - if (settings.wordsOnly) { - pattern = "\\b" + pattern + "\\b"; + var re; + if (settings.pattern) { + re = new RegExp(settings.pattern, flag); + } else { + var pattern = "(" + words.join("|") + ")"; + if (settings.wordsOnly) { + pattern = "\\b" + pattern + "\\b"; + } + re = new RegExp(pattern, flag); } - var re = new RegExp(pattern, flag); - return this.each(function () { jQuery.highlight(this, re, settings.element, settings.className); }); }; -