返回列表 发帖
本帖最后由 aloha20200628 于 2025-3-12 13:49 编辑

回复 1# yyz219

正则判断网址有效性的版本繁多,准确度参差不一,先择其一个简版...
另》获取剪贴板文本内容常见的还有 mshta 版本,但其会导致闪屏,故还是选用了 jscript 方法,参考返回值=1(有效)-1(无效)
以下代码存为 test.bat 运行
  1. 2>1/* ::
  2. @echo off &for /f "delims=" %%s in ('cscript /e:jscript "%~f0" ') do echo,%%s
  3. pause&exit/b */
  4. h=WSH.createobject('htmlfile'), u=h.parentWindow.clipboardData.getData('text');
  5. p=/^(?:(http|https|ftp):\/\/)?((?:[\w-]+\.)+[a-z0-9]+)((?:\/[^/?#]*)+)?(\?[^#]+)?(#.+)?$/i;
  6. v=(u && p.test(u.replace('\"','')))? 1: -1
  7. WSH.echo(v),WSH.quit();
复制代码
1

评分人数

TOP

回复 3# yyz219

如果要将没有协议前缀的网址如 www.abc.com 列入无效,则可用以下代码替换一楼代码第5行
  1. p=/^((http|https|ftp):\/\/)((?:[\w-]+\.)+[a-z0-9]+)((?:\/[^/?#]*)+)?(\?[^#]+)?(#.+)?$/i;
复制代码
1

评分人数

TOP

本帖最后由 aloha20200628 于 2025-3-12 19:37 编辑

回复 6# yyz219

试试以下的 mshta 版本,存为 test.bat 运行...
  1. <!-- :
  2. @echo off &(for /f %%v in ('mshta "%~f0" ') do echo,%%v) &pause&exit/b
  3. -->
  4. <script> resizeTo(0,1); u=clipboardData.getData('text');
  5. p=/^((http|https|ftp):\/\/)((?:[\w-]+\.)+[a-z0-9]+)((?:\/[^/?#]*)+)?(\?[^#]+)?(#.+)?$/i;
  6. v=(u && p.test(u.replace(/\"/ig,'')))? 1: -1;
  7. new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(v); close(); </script>
复制代码
1

评分人数

TOP

返回列表