Is there an easy way to change the case of a matched string with javascript?
Example
String : <li>something</li>
Regex : /<([\w]+)[^>]*>.*?<\/\1>/
And what I'd like to do is replace the match $1 to all capital letters (inside the replace if possible). I'm not entirely sure when $1 is a valid match and not a string -- '$1'.toUpperCase doesn't work.
So how would I go about returning <LI>something</li>
? The method, not the regex.
You can pass the replace method a replacer function. The first argument for which is the whole match, the second will be $1. Thus:
mystring.replace(/<([\w]+)[^>]*>.*?<\/\1>/, function(a,x){
return a.replace(x,x.toUpperCase());
})
although this form saves the extra operation by making an additional capture (should be faster but haven't checked):
mystring.replace(/<([\w]+)([^>]*>.*?<\/\1>)/, function(a,x,y){
return ('<'+x.toUpperCase()+y);
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With