<textarea name="test">
http://google.com/
https://google.com/
www.google.com/
[url=http://google.com/]google.com[/url]
text
</textarea>
Run Code Online (Sandbox Code Playgroud)
我目前尝试检查textarea中是否有URL.
if ($('textarea[name="test"]').val().indexOf('[url') >= 0 ||
$('textarea[name="test"]').val().match(/^http([s]?):\/\/.*/) ||
$('textarea[name="test"]').val().match(/^www.[0-9a-zA-Z',-]./)) {
Run Code Online (Sandbox Code Playgroud)
这似乎不能完全用于检查上面的任何URL - 我想知道如何优化它.这一刻似乎非常草率和黑客攻击,希望有人可以提供一些见解.
我目前尝试从textarea中删除URL:
var value = $('textarea[name="test"]').val();
value = value.replace(/\[\/?url([^\]]+)?\]/g, '');
$('textarea[name="test"]').val(value);
Run Code Online (Sandbox Code Playgroud)
现在,它将输出:
<textarea>
http://google.com/
https://google.com/
www.google.com/
google.com
text
</textarea>
Run Code Online (Sandbox Code Playgroud)
我希望我的输出是:
<textarea>
text
</textarea>
Run Code Online (Sandbox Code Playgroud)
尝试(评论后更正和改进):
value = value.replace(/^(\[url=)?(https?:\/\/)?(www\.|\S+?\.)(\S+?\.)?\S+$\s*/mg, '');
Run Code Online (Sandbox Code Playgroud)
从头到尾剥离表达式:
此表达式不强制执行完整正确的语法,这是一个更难写的正则表达式.
您可能需要的一些改进:
1.意识到空间
value = value.replace(/^\s*(\[\s*url\s*=\s*)?(https?:\/\/)?(www\.|\S+?\.)(\S+?\.)?\S+\s*$\s*/mg, '');
Run Code Online (Sandbox Code Playgroud)
2.最后一部分没有点
value = value.replace(/^(\[url=)?(https?:\/\/)?(www\.|\S+?\.)(\S+?\.)?[^.\s]+$\s*/mg, '');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4926 次 |
| 最近记录: |