javascript - Using regular expression can we take the even placed and odd placed value? -
var testst = "hello" testst.split('').filter((a,b)=>{if(b==0||b%2==0){return a}}).join('') // placed value hlo
it possible looping through values, , check if index divided 2 or not. possible directly write regular expression , exec on string placed , odd placed values?
example - testst.exec(/^\d*[024]$/) //something
something this?
console.log('abcdefghij'.replace(/(.)./g, '$1'));
the .
in regexp match anything, /../
way match pair of characters. using g
modifier cause pairs of characters in string matched. such match performed without overlap between matches, ab
, cd
, ef
, gh
, ij
.
by putting ()
around first .
form capture group on first character of each pair. $1
special syntax used refer first capture group, each pair replaced first character of pair.
so, example, first matching pair in string ab
, a
captured. ab
therefore replaced a
. replace cd
c
, ef
e
, on.
it worth noting string odd length final character not matched isn't problem because don't want replace it. problem if wanted swap roles of odd digits , digits, couldn't move parentheses. work we'd have make second character optional @ end of string. can using $
character, matches end of string:
// leaves trailing letter @ end, wrong console.log('abcdefghi'.replace(/.(.)/g, '$1')); // fixed console.log('abcdefghi'.replace(/.(.|$)/g, '$1'));
Comments
Post a Comment