I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...
Your question is kind of ambiguous to me: You must define what you mean with Universal, but here's my answer:
ReplyDeleteRegular Expressions are used in almost every programming language like PHP, JavaScript, Perl, Awk, Java, C#, etc...
The thing is that the syntax may vary a little bit from one language to another, and each language may implement them in a different way, and include or not some particular features (usually features that allow regex to recognize not only regular languages, but also others like Context-Free ones)
If you create a new programming language, you can add them regexes feature, but that doesn't mean the syntax will be exactly the same as regexes syntax in .NET, for example. And not only that: The implementation of the engine will surely be different (more/less efficient) than others...
They're not all exactly the same
ReplyDeleteTake a look at this list for some of the differences
No. There are many dialects of regular expressions, though the basic expressions tend to be quite similar. Also, a useful feature introduced in one dialect is often copied by other dialects.
ReplyDeleteRegular expressions in themselves are a programming construct. So you'll find that the core concepts regarding expressions for pattern matching are basically universal, however each implementation will provide their specific spin on the syntax to go about accomplishing that.
ReplyDeleteNo. But anything you are likely to use will support them in some shape or form.
ReplyDeleteThe bad news is no!
ReplyDeleteThere are many implementations and variations of regexes.
In a standard unix implementation ksh, bash, grep and awk all use slightly different rules. lua has a very limited regex library and Java has a fully functioning lib but with its own quirks.
The good news is that most of the popular scripting (php, python etc.) languages use "pcre" library and as "pcre" stands for "Perl Compatable Regular Expresions" by definition it works the same as perl regular expressions as far as possible. And the pcre library is linkable from to compiled languages (C,C++ etc).