Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用正则表达式在全文中查找URL_Javascript_Regex - Fatal编程技术网

Javascript 如何使用正则表达式在全文中查找URL

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

下面的正则表达式在很多在线JavaScript正则表达式测试人员(和RegEx Buddy)中都能工作,但在我的应用程序中却不能工作,这有什么问题

它旨在用超链接替换URL。Javascript可以在Javascript文件中找到

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的用户体验有点困惑,没有注意到“使用”选项卡)。