---
title: "Regex för <script>"
type: "forum-thread"
url: "https://www.webforum.nu/amne/webbutveckling/149358-regex-för-script"
topic: "Webbutveckling"
topic_url: "https://www.webforum.nu/amne/webbutveckling"
author: "echoSwe"
published: "2006-07-24T10:51:31.000Z"
updated: "2006-07-24T10:51:31.000Z"
replies: 0
views: 167
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/webbutveckling/149358-regex-för-script"
---

# Regex för <script>

## #1 — echoSwe, 2006-07-24T10:51Z

Tjena

Jag har dessa två funktioner:

```
		private void maskScript()
		{
			// Add <![CDATA[ ... ]]> to mask script
			strXhtmlMarkup = Regex.Replace(strXhtmlMarkup,
				@"(<script[^<]*>){1}(?(?=\s*<!--)(\s*<!--)(\s*.*?)(//\s*-->)|(\s*.*?))\s*(</script>){1}",
				new MatchEvaluator(FixStyleAndScript),
				RegexOptions.IgnoreCase | RegexOptions.Singleline);
		}

		private string FixStyleAndScript(Match m)
		{
			string ret = "";
			string st, ed;

			st = "\r\n//<![CDATA[\r\n";
			ed = "\r\n//]]>\r\n";

			if (m.Groups[2].ToString().Trim() == "" && m.Groups[4].ToString().Trim() == "")
				st = ed = "";

			ret = m.Groups[1].ToString() + st;
			ret += m.Groups[2].ToString() + m.Groups[4].ToString() + ed + m.Groups[5].ToString();
			return ret;
		}
```

strXhtmlMarkup innehåller all kod i ett xhtml dokument, språket är C#.

Säg att detta finns i strXhtmlMarkup:

```
	<script type="text/javascript">
	//<![CDATA[
	function updateDateTime(el)
	{
		dateNow = new Date();
		
		document.forms[0].el.value = dateNow.getFullYear();
	}
	//]]>
	</script>
```

Då ändras detta till

```
<script type="text/javascript">
//<![CDATA[

	//<![CDATA[
	function updateDateTime(el)
	{
		dateNow = new Date();
		
		document.forms[0].el.value = dateNow.getFullYear();
	}
	//]]>
//]]>
</script>
```

Anledningen till att dessa två funktioner finns alls är att om det ser ut såhär: 

```
<script type="text/javascript">
<!--
	function updateDateTime(el)
	{
		dateNow = new Date();
		
		document.forms[0].el.value = dateNow.getFullYear();
	}
	-->
</script>
```

så är det fel i xml, eftersom \<!-- kommenterar bort scriptet. Då vill jag att detta ska ändras till cdata. Men problemet är ju att den ändrar även cdata som redan finns och lägger till en till cdata.

Permalänk: https://www.webforum.nu/p/149358

---

Tråden på webben: https://www.webforum.nu/amne/webbutveckling/149358-regex-för-script
