我正在尝试使用 JQuery 来实现以下逻辑:
- 替换字符串值
[url="http://www.google.com"]Google[/url]
with <a href="http://www.google.com">Google</a>
请参阅下面我的 HTML 页面。问题是,按下按钮后,原始文本只是被传递,并且没有进行正则表达式替换。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Test</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
//<![CDATA[
function processJs() {
var oldtext = $("#oldtext").html();
var newtext = oldtext.replace('\[url\s?=\s?"?(.*?)"?\](.*?)\[\/url\]', '<a href="$1">$2</a>');
$('#mydiv').html(newtext);
}
//]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="oldtext">
Try this funky new search engine:
[url="http://www.google.com"]Google[/url]
Or this older one from back in the day:
[url="http://uk.altavista.com"]AltaVista[/url]
</div>
<div>
<input type="button" id="btn" value="Replace" onclick="processJs(); return false;" />
</div>
<div id="mydiv" style="background-color: #eeeeee; border: 2px inset #aaaaaa">
Replaced text will go here.
</div>
</form>
</body>
</html>
我已经使用 ASP.NET 使用了这个 RegEx 模式,所以我不确定移植到 JavaScript 时问题出在哪里......
这不是一个有效的正则表达式。使用/
作为修饰符:
/\[url\s?=\s?"?(.*?)"?\](.*?)\[\/url\]/
制作函数:
function processJs() {
var oldtext = $("#oldtext").html();
var newtext = oldtext.replace(/\[url\s?=\s?"?(.*?)"?\](.*?)\[\/url\]/g, '<a href="$1">$2</a>');
$('#mydiv').html(newtext);
}
g
最后将在文本上重复它。这是一个小提琴:http://jsfiddle.net/xe2F9/ http://jsfiddle.net/xe2F9/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)