jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
<script>
var mask = 'Hello, *****';
var aRegexpSafe = mask.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
var regexPattern = new RegExp(aRegexpSafe.replace(/\\\*/g, '.'));
var t1 = 'Hello, Abcde';
var t2 = 'Hello, World';
var t3 = 'Hello, me';
var maskRe = /(\*)+/gi;
var textRe = /^[\wа-я]+$/i;
var maskCache = {};
var preprocessMask = function(mask) {
var tokens = [];
while (match = maskRe.exec(mask)) {
tokens.push({ index: match.index, length: match[0].length });
}
maskCache[mask] = tokens;
return tokens;
};
var validateByMask = function(mask, input){
var tokens = maskCache[mask] || preprocessMask(mask);
if (mask.length != input.length)
return false;
var indexes = tokens.map(t => t.index);
for (let i = 0; i < mask.length; ) {
var maskIdx = indexes.indexOf(i);
if (maskIdx != -1) {
var token = tokens[maskIdx];
var candidate = input.slice(token.index, token.index + token.length);
if (!textRe.test(candidate))
return false;
i += token.length;
continue;
}
if (mask[i] != input[i])
return false;
i++;
}
return true;
};
var dumb = function(mask, str) {
if(str.length != mask.length) return false;
var match = true;
for(var i = 0; i<str.length; i++) {
if(mask[i] == '*') continue;
if(str[i] != mask[i]) {
match = false;
break;
}
return match;
}
}
</script>
Ready to run.
Test | Ops/sec | |
---|---|---|
regexp |
| ready |
regexp2 |
| ready |
dumb |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.