Javascript 如何使用正则表达式在全文中查找URL
下面的正则表达式在很多在线JavaScript正则表达式测试人员(和RegEx Buddy)中都能工作,但在我的应用程序中却不能工作,这有什么问题 它旨在用超链接替换URL。Javascript可以在Javascript文件中找到Javascript 如何使用正则表达式在全文中查找URL,javascript,regex,Javascript,Regex,下面的正则表达式在很多在线JavaScript正则表达式测试人员(和RegEx Buddy)中都能工作,但在我的应用程序中却不能工作,这有什么问题 它旨在用超链接替换URL。Javascript可以在Javascript文件中找到 var fixed = text.replace(/\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]/ig, "<a href='$&' target
var fixed = text.replace(/\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]/ig, "<a href='$&' target='blank'>$&</a>");
var fixed=text.replace(/\b(https?| ftp |文件):/[-A-Z0-9+&@#/%?=~|$!:,.;]*[A-Z0-9+&@#/%=~|$]/ig,”;
例如,Chrome抱怨&无效(IE8也是如此)。有没有什么方法可以不用使用RegEx对象来逃避符号(或其他错误的符号)?这对我来说在Chrome中很有用
var fixed = text.replace(/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/igm, "<a href='$1' target='blank'>$1</a>");
var fixed=text.replace(/(ftp | http | https):\/\/(\w+:{0,1}\w*@)(\S+(:[0-9]+)(\/\/([\w#!:.?+=&%@!\-\/]))/igm,”;
这在Chrome中对我很有效
var fixed = text.replace(/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/igm, "<a href='$1' target='blank'>$1</a>");
var fixed=text.replace(/(ftp | http | https):\/\/(\w+:{0,1}\w*@)(\S+(:[0-9]+)(\/\/([\w#!:.?+=&%@!\-\/]))/igm,”;
这些测试人员允许您以原始形式输入正则表达式,但是当您在源代码中使用它时,您必须以字符串文本或正则表达式文本的形式(这里就是这种情况)来编写它。JavaScript使用正斜杠作为正则表达式文字分隔符,因此您必须转义正则表达式本身中的任何斜杠,以避免混淆解释器
一旦你摆脱了斜杠,它应该停止抱怨符号。这很可能是由格式错误的正则表达式文字引起的
我认识那个regex,前几天我自己也用过;你从RegexBuddy的图书馆得到的,是吗?如果您使用了RB的“Use”功能来创建一个与JS兼容的正则表达式,那么它就不会出现斜杠。这些测试人员允许您以原始形式输入正则表达式,但是当您在源代码中使用它时,您必须以字符串文本或正则表达式文本的形式(这里就是这样)来编写它。JavaScript使用正斜杠作为正则表达式文字分隔符,因此您必须转义正则表达式本身中的任何斜杠,以避免混淆解释器 一旦你摆脱了斜杠,它应该停止抱怨符号。这很可能是由格式错误的正则表达式文字引起的
我认识那个regex,前几天我自己也用过;你从RegexBuddy的图书馆得到的,是吗?如果您使用RB的“Use”功能创建了一个与JS兼容的正则表达式,那么它就不会出现斜杠。您是否有可能在属性中包含该代码?如果是这样,那么您需要对其主体进行html编码(这与代码本身无关)。您是否有可能将该代码包含在属性中?如果是这样的话,那么你需要对它的主体进行html编码(这与代码本身无关)。作者创建了RegexBuddy。问题出在未替换的/。我太专注于错误信息了,以至于我没有想到要看一下表达式的其余部分——特别是因为我从一本书中提取了它……:)(我仍然对RegExBuddy的用户体验有点困惑,没有注意到“使用”选项卡)。我实际上是从《正则表达式食谱》一书中得到的。作者创建了RegexBuddy。问题出在未替换的/。我太专注于错误信息了,以至于我没有想到要看一下表达式的其余部分——特别是因为我从一本书中提取了它……:)(我仍然对RegExBuddy的用户体验有点困惑,没有注意到“使用”选项卡)。