<textarea name="test">
test
[url=http://test.com]test[/url]
[url][img]http://test.com/test.jpg[/img][/url]
test
</textarea>
如何删除[url][/url]
和[url=][/url]
中包含的所有内容,但保留[img]
?
我尝试了什么:
var value = $('textarea[name="test"]').val();
value = value.replace(/\[url=(.+?)\](.+?)\[\/url\]/g, '');
value = value.replace(/\[url=(.+?)\]/g, '');
value = value.replace('[url]', '');
value = value.replace('[\/url]', '');
$('textarea[name="test"]').val(value);
预期产出:
<textarea>
test
[img]http://test.com/test.jpg[/img]
test
</textarea>
答案 0 :(得分:1)
这应该排除你 - 可以用一个正则表达式替换来实现:
var value = $('textarea[name="test"]').val();
value = value.replace(/\[\/?url([^\]]+)?\]/g, '');
$('textarea[name="test"]').val(value);
正是在那里发生的事情是正则表达式查找以方括号[
开头的字符串,该字符串可能会或可能不会跟随结束/
,但是然后是url
,然后它会继续匹配,直到遇到]
,并且不会关心它找到的那一点。这样就可以获得以下所有内容的匹配:
[url]
[/url]
[url=http://www.google.com]
[url hello world this is nice]
(如果你真的想要:-P)我在上面提到过,您可以在&#39; text&#39;中更改jQuery中textarea
字段的名称。签名&#39;但从未发布包含第二个textarea的HTML - 我刚刚使用了同一个 - &#39; test&#39;在上面的代码中。
希望有所帮助。