我正在尝试创建一个JavaScript程序,用链接替换某些文本模式。但是由于网页上的某些网址存在模式,因此会阻止网址链接。正则表达式来排除URL的
我特别希望排除模式,如果它包含在一个URL中,例如这里是我当前的Regex代码。
$els.replaceText(/(\bX00[A-Z0-9]{7}\b)/gi, '<span class="context context_ident">$1<\/span>');
一些示例文本:
项:X00132BhJk
www.domain.com/X00132BhJk
www.domainsearch.com/search?ident=X00132BhJk
X00132BhJk
X00132BhJk
斜体参考文献应选择和更换然而包含域内应该不是引用。我遇到的问题是参考。
最初我尝试了\sX00[A-Z0-9]{7}\s
,但是当参考出现在页面的最左侧(句子中的第一个单词)时,它没有被选中。同样如此,它不会选择是否遵循句号或冒号先于。
有没有一种方法可以排除URL的排除/?和=是否是直接前面的字符,但在所有其他情况下选择?
问题是,'X00132BhJk1是Intranet内的完全有效的URL,例如(通过防火墙内的该名称指定主机)。编写用于验证URL的正则表达式非常困难。您可以做的最好的办法是找到一些无效的案例,例如包含无效字符的网址,或者以明显的方式变形。 – 2014-09-06 13:37:48