javascript - Regex converting & to & -



javascript - Regex converting & to & -

i developing little character encoder generator user input text , on click of button, outputs encoded version.

i've defined object of characters need encoded so:

map = { '©' : '©', '&' : '&' },

and here loop gets values map , replaces them:

object.keys(map).foreach(function (ico) { var icoe = ico.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); raw = raw.replace( new regexp(icoe, 'g'), map[ico] ); });

i them outputting result textarea. works fine, problem i'm facing this.

© replaced © & symbol @ origin of converted & ends beingness ©.

i see why happening i'm not sure how go ensuring & not replaced within character encoded strings.

here jsfiddle live preview of mean:

http://jsfiddle.net/4m3nw/1/

any help much appreciated

prelude: apart regex, thought worth considering this js function handles html entities. now, on regex question.

html special characters, negative lookahead

in html, special characters can not © —, , can have upper-case characters.

to replace ampersands not followed hash or word characters , semicolon, can utilize this:

&(?!(?:#[0-9]+|[a-z]+);)

see demo.

make sure utilize i flag activate case-insensitive mode & matches literal ampersand the negative lookahead (?!(?:#[0-9]+|[a-z]+);) asserts not followed by... (?:#[0-9]+|[a-z]+) hash , digits, | or letters... then semicolon.

reference

lookahead , lookbehind zero-length assertions mastering lookahead , lookbehind

javascript regex replace

Comments

Popular posts from this blog

php - Android app custom user registration and login with cookie using facebook sdk -

django - Access session in user model .save() -

php - .htaccess Multiple Rewrite Rules / Prioritizing -