我目前正在编辑一个项目,其中前端主要用Javascript和knockout,js
编写。现在我正在尝试检测文本中的URL并将其转换为链接。进行快速堆栈溢出搜索,我发现在Javascript中,以下函数将为我执行此操作:
var replaceURLWithHTMLLinks = function(text) {
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
return text.replace(exp,"<a href='$1'>$1</a>");
};
然而,我无法弄清楚如何用淘汰赛实现这一点。另一个快速搜索显示很多人使用正则表达式与.extend()函数(如
)进行淘汰this.foo = ko.observable().extend(<function>)
其中<function>
是他们的正则表达式函数。这些示例中的正则表达式并不详细,我正在尝试弄清楚如何将URL检测功能实现为淘汰赛extend
。
答案 0 :(得分:0)
我很确定你可以使用replaceURLWithHTMLLinks
,只要你在代码中的某处调用它即可。这实际上会替换。
Knockout extend
方法提供了对数据进行验证的功能。例如,如果您的输入字段需要特定格式或其他验证,则可以使用extend
验证您的电话号码和日期是否格式正确,以及您的数字字段中只包含数字。< / p>
extend
与您尝试做的完全不同,所以你跳过这一部分,完全是出于此目的。
只需直接在您的Javascript中调用replaceURLWithHTMLLinks
,即可完成。