Bonfire: Check for Palindromes

Am obiceiul să complic lucrurile dar uite că acest bonfire a fost relativ usor. Codul original era putin mai lung (mai alex regexp) dar am văzut că cineva de pe gitter a sugerat doar \W|_ care înseamnă toate caracterele care nu sunt litere sau (|) underscore _

RegExp de la Mozilla e bun tare https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

function palindrome(str) {
str = str.replace(/\W|_/g, '').toLowerCase();
return str == str.split('').reverse().join('');
}

palindrome("eye");

Update: Se mai poate și [\W_] sau [^a-zA-Z0-9]

Bonfire: Binary Agents

Mi-a mai revenit puțin moralul. Mai jos este soluția pe care am găsit-o eu la acest bonfire:

function binaryAgent(str) {
str = str.replace(/([0-9]+)(\s)?/g, function(match, p1, p2){ p1 = String.fromCharCode(parseInt(p1, 2)); p2 = ''; return p1+p2; });
return str;
}

console.log(binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111"));

Spor 🙂

Bonfire: Spinal Tap Case

La acest bonfire a trebuit să construiesc un regex care să ia în considerare și camelCase. După câteva ore am ajuns la această soluție:

function spinalCase(str) {
 // "It's such a fine line between stupid, and clever."
 // --David St. Hubbins
 return str.replace(/([a-z](?=[A-Z]))|(\s|_|-)+/g, '$1-').toLowerCase();
}

console.log(spinalCase('thisIsSpinalTap'));

Super! Prin exercițiu se învață cel mai bine, doar avem o vorbă: „Repetiția, mama învățăturii”. Trebuie să mai exersez Regular Expressions pentru că sunt foarte folositoare. Foarte de folositor: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions

Tot înainte cu programarea 🙂