我使用此Regexp来匹配方括号内的文本
/\[link\](.*)\[\/link\]/g
我匹配的文字
[link]The text goes here[/link]
当我在regex101中测试它时,正则表达式的工作非常棒,但是当我在我的网站中使用它时它不起作用。 这就是我在我的网站上使用它的方式。
case 'untitle':
var html = '<script>$(document).ready(function(){var topic = $(".post-body div").text();
topic = topic.split(/\[link\](.*)\[\/link\]/g); $(".article-title a").attr("href", topic[1]);
});<\/script>';
break;
$('body').append(html);
我发现Regexp不起作用,因为它在引号内,所以我需要一个方法来逃避它并让它工作。
答案 0 :(得分:0)
不清楚你的确切问题是什么;但你可能被正则表达式的贪婪所困扰。基本上,它匹配整个[link]The text goes here[/link] foo [link] bar [/link]
而不是第一个。因此,您需要使用\[link\](.*?)\[\/link\]
代替。
答案 1 :(得分:0)
你的问题是\是逃脱的事实,所以它逃脱了[caharacter。您需要将字符串中的\\
翻倍....
但是设计很糟糕,附加JavaScript是没有意义的。
您正在尝试为某些情况运行代码。为什么要向页面添加代码串是没有意义的。
function linkify () {
var topic = $(".post-body div").text();
topic = topic.split(/\[link\](.*)\[\/link\]/g); $(".article-title a").attr("href", topic[1]);
}
和开关
case 'untitle':
linkify();
break;