Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove `//<![CDATA[` and end `//]]>` with javascript from string?

How to remove //<![CDATA[ and end //]]> with javascript from string?

var title = "<![CDATA[A Survey of Applications of Identity-Based Cryptography in Mobile Ad-Hoc Networks]]>" ;

needs to become

var title = "A Survey of Applications of Identity-Based Cryptography in Mobile Ad-Hoc Networks";

How to do that?

like image 202
Alireza Avatar asked Jun 07 '12 15:06

Alireza


3 Answers

You can use the String.prototype.replace method, like:

title = title.replace("<![CDATA[", "").replace("]]>", "");

This will replace each target substring with nothing. Note that this will only replace the first occurrence of each, and would require a regular expression if you want to remove all matches.

Reference:

  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
like image 104
Ian Avatar answered Oct 21 '22 03:10

Ian


You ought to be able to do this with a regex. Maybe something like this?:

var myString = "<![CDATA[A Survey of Applications of Identity-Based Cryptography in Mobile Ad-Hoc Networks]]>";
var myRegexp = /<!\[CDATA\[(.*)]]>/;
var match = myRegexp.exec(myString);
alert(match[1]);
like image 35
Curtis Avatar answered Oct 21 '22 03:10

Curtis


I suggest this wider way to remove leading and trailing CDATA stuff :

title.trim().replace(/^(\/\/\s*)?<!\[CDATA\[|(\/\/\s*)?\]\]>$/g, '')

It will also work if CDATA header and footer are commented.

like image 37
Vince Avatar answered Oct 21 '22 01:10

Vince