JS使用Regex校验出现卡顿

news/2025/10/11 17:04:57/文章来源:https://www.cnblogs.com/mqnu00/p/19135487

背景

使用vue3+naive ui 开发网站,在写表单校验规则,其中URL校验项使用了regex,表达式写的有问题,在校验某些URL出现卡顿。最后使用浏览器内置URL类的构建函数来校验,放弃了正则。

REGEX探讨

/^(https?:\/\/)?([\da-z\.-]+)\.([a-z]{2,6})([\/\w \.-]*)*\/?$/.test('https://www.tt.com/km/123/456/1231212121.py?method=view&fdId=112233');

问题出在(\/[\w.-]*)*这一段,它匹配的是/km/123/456/1231212121.py?method=view&fdId=112233

意思是将字符串按/分开,匹配之后的[A-Za-z0-9_.-],遇到新的斜杠就开始新的一轮匹配。

即依次匹配/km/123/456......

这个重复匹配斜杠开头没有问题,问题是后续的字符我限定的太少了,而这里有一个?,导致匹配失败后会重新回溯,重新尝试匹配。

比如一开始匹配的是/km/123/456/1231212121.py,遇到问号,觉得有问题,重新匹配到/km/123/456,然后后面的字符交给后续的表达式匹配。

我想到的解决方法就是直接匹配斜杠开头+任意字符:

/^(https?:\/\/)?([\da-z\.-]+)\.([a-z]{2,6})\/.*/.test('https://www.tt.com/km/123/456/1231212121.py?method=view&fdId=112233');

浏览器内置URL类探讨

export function checkUrl(url) {try {new URL(url);return true;} catch (e) {return false;}
}

当时是询问AI有没有其他的校验方法,比较中意的就是这个。但是这个URL类是浏览器内置的API,我需要确定一下它的构建函数是怎么校验url的。

如何确认URL是内置API

console.log(URL)

output: ƒ URL()

说明就是浏览器的API

确认URL构造函数内容

需要去翻阅浏览器源码

这里参照[chromuim/url](chromium/url at main · chromium/chromium)

阅读readme可以发现是由c++实现的gurl,对js环境表现为URL

校验内容:

scheme(即'http'等前缀) 和 host/path/query

是否有合法的 scheme → DoExtractScheme()

是否属于 special 协议 → IsStandard()

是否能成功拆解 host/path/query → DoParseAuthority() + ParsePath()

是否嵌套结构合法(NoStandardUrl会考虑) → DoParseFileSystemURL()

最终由 Canonicalize() 返回 is_valid_,决定 GURL 是否有效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025舒适轮胎厂家最新推荐榜:静音耐磨,驾驶体验再升级!

2025舒适轮胎厂家最新推荐榜:静音耐磨,驾驶体验再升级!随着汽车工业的不断发展,消费者对轮胎性能的要求也越来越高。除了基本的安全性和耐用性外,静音和舒适性成为了越来越多车主关注的重点。为了帮助大家更好地筛…

2025 净化铝型材十大品牌之一优选,推荐龙新铝业,最快24小时内发货

“车间急等铝材搭隔断,供应商说要等一周?”“刚发现型材精度不够,半导体车间根本用不了!” 在电子、制药等对洁净环境要求严苛的行业,选对净化铝型材堪比 “定海神针”,而交货慢、品质不稳定更是让无数工程负责人…

2025 权威推荐!净化铝型材品牌 TOP5 排行榜:实力厂家精选,品质之选不容错过

2024年国内工业铝型材产量达1170万吨,同比暴涨23.2%,其中净化专用型材需求增速更是突破19%。但繁荣背后暗藏危机:低价产品用回收铝冒充6063-T5原生铝,铁含量超标导致抗腐性骤降;宣称的"1000小时盐雾测试&quo…

关于HashMap

hashMap的底层数据结构是哈希表,哈希表又由数组加链表构成,在执行put操作时,hashMap会根据key进行哈希函数运算,得到他在数组的位置并插入对应链表,如果哈希值相同并且关键字也相同,那么会直接修改原来的value值…

sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一。

sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一。它可以从多方面对系统的资源使用情况进行监控,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、…

车辆主动悬架线性最优控制(LQR)系统

车辆主动悬架系统的线性二次型最优控制(LQR)设计,包括系统建模、控制器设计和性能分析 1. 系统动力学模型 1.1 二自由度1/4车辆模型 classdef ActiveSuspensionLQR < handle% 主动悬架线性最优控制系统% 采用二自由…

2025环保/植物/净醛/健康/无味腻子粉厂家推荐榜:专注多场景墙面基底解决方案供应!

随着房地产精装修、旧房翻新改造及商业空间装修领域的快速发展,腻子粉作为墙面找平、美化的核心基底材料,市场需求持续攀升。但行业乱象凸显:部分厂家用劣质碳酸钙、回收胶粉压缩成本,导致腻子粉易开裂、脱粉,墙面…

2025 泰国立体/高位/仓储/托盘/重型/流利式/贯通式/穿梭车/模具货架厂家推荐排行榜:聚焦多场景存储需求,精选优质供应商!

随着电商物流、制造业仓储、零售门店及家居收纳领域的快速发展,货架作为提升空间利用率、优化存储管理的核心设备,市场需求持续攀升。但行业乱象同样凸显:部分厂家使用劣质钢材压缩成本,导致货架承重不足、易变形,…

2025 工控/核心板/工业/嵌入式主板板卡厂家推荐排行榜:聚焦多领域智能硬件核心供应!

随着工业自动化、物联网、消费电子及人工智能领域的飞速发展,主板板卡作为智能硬件的核心 “大脑”,其市场需求持续攀升。但行业乱象同样凸显:部分厂家采用劣质元器件压缩成本,导致板卡稳定性差、使用寿命短,频繁…

计划任务在不管用户是否登录都要运行时,bat不能正常运行处理办法

经过研究实际测试发现,按照以下步骤即可解决: 1、只要设置好任务以后(选择“不管用户是否登录都要运行”) 2、用管理员运行CMD : schtasks /change /it /tn "任务名称" 3、执行完上述命令后,按照提示输…

2025 高压/高压空气/氦气/氩气压缩机厂家推荐榜:聚焦多场景压缩空气解决方案!

随着工业制造、医疗健康、食品加工及新能源领域的高速发展,压缩机作为核心动力设备,其市场需求持续增长。但行业现存诸多痛点:部分厂家以次充好,采用劣质核心部件缩短成本,导致设备运行稳定性差、能耗高、寿命短;…

HLT-Q0402-COG-25V-820-J高频电容选型、替代与焊接避坑指南

HLT-Q0402-COG-25V-820-J高频电容选型、替代与焊接避坑指南最近在项目中用到 HLT-Q0402-COG-25V-820-J 这颗电容,查了不少资料,也看了一些论坛讨论,简单总结如下,供有需要的朋友参考: 规格参数:820pF 5%、25V、C…

HLT-Q0402-COG-25V-820-J高频电容选型、替代与焊接避坑指南

HLT-Q0402-COG-25V-820-J高频电容选型、替代与焊接避坑指南最近在项目中用到 HLT-Q0402-COG-25V-820-J 这颗电容,查了不少资料,也看了一些论坛讨论,简单总结如下,供有需要的朋友参考: 规格参数:820pF 5%、25V、C…

2025 温室/蔬菜/花卉/单栋/玻璃温室/连栋/连栋膜温室/薄膜/塑料/钢架大棚厂家推荐榜:聚焦多场景种植需求,提供专业设施解决方案!

随着农业现代化进程加速、设施农业普及以及特色种植(如反季节蔬果、花卉培育、种苗繁殖)产业的蓬勃发展,大棚作为调控种植环境、提升作物产量与品质的核心设施,市场需求持续增长。但行业乱象同样凸显:部分厂家采用…

Delta并联机器人正逆解实现

一、运动学建模基础 1. 结构参数定义静平台:半径\(R\),安装三个主动臂(\(A1A2A3\)) 动平台:半径\(r\),连接三个从动臂(\(B1B2B3\)) 驱动参数:主动臂长度\(L\),从动臂长度\(l\) 坐标系:以静平台中心为原点,…

SQL查询,直接生成json结果

场景可直接将查询结果,调用post请求发送json数据 可直接根据json结果,进行序列化处理SELECT JSON_ARRAYAGG(JSON_OBJECT(id, id,code, `code`,primaryWaybillCode, primaryWaybillCode,carrierCode, carrierCode,sto…

2025 MVR/三效/多效/结晶/废水/降膜蒸发器厂家口碑推荐榜:聚焦多行业废水处理与物料浓缩解决方案!

随着工业生产精细化、环保要求严格化及资源回收重视度的提升,蒸发器作为实现废水零排放、物料高效浓缩与资源循环利用的核心设备,市场需求持续增长。但行业痛点显著:部分厂家缺乏核心技术,设备能耗高、运行不稳定,…

mindie开启DeepSeek的128K

昇腾910b上用mindie推128k的deepseek。需要修改的地方有2处: 一、启动脚本:source /usr/local/Ascend/ascend-toolkit/set_env.sh source /usr/local/Ascend/nnal/atb/set_env.sh source /usr/local/Ascend/atb-mode…

MATLAB的无刷直流电机转速电流双闭环仿真实现

一、系统架构与建模原理 1. 双闭环控制结构 无刷直流电机(BLDC)双闭环控制系统由转速外环和电流内环构成:转速环:通过PI控制器调节参考电流幅值,实现转速稳定。 电流环:采用滞环控制或SVPWM调制,确保相电流快速…

AI设计软件/工具/品牌/方案/大模型/开源模型/平台/小程序/插件公司推荐:专注多场景智能设计解决方案供应!

随着数字经济、文创产业、企业数字化转型及个人创意需求的快速发展,AI 设计作为提升创作效率、降低设计门槛、保障视觉统一性的核心工具,市场需求持续攀升。但行业乱象凸显:部分厂家以 “AI 设计” 为噱头,实际功能…