正则表示式_匹配一个含有范围类型的数值字符串

匹配一个范围的字符串, 比如 10-12 10.3-20.3 -10.4-20 -10.4--20.4 每个字符串后面可以有0个或多个空格 , 空格后面还有个任意字符

在JavaScript中,要匹配你描述的字符串模式,可以使用以下正则表达式:

javascript 复制代码
const regex = /^-?\d+(\.\d+)?-(-?\d+(\.\d+)?) *.[\s\S]*$/;

正则表达式解释

  1. ^:匹配字符串的开始位置。
  2. -?:匹配一个可选的负号。
  3. \d+:匹配一个或多个数字。
  4. (\.\d+)?:匹配一个可选的小数部分,即一个点后面跟着一个或多个数字。
  5. - :匹配范围分隔符 -。
  6. (-?\d+(\.\d+)?):再次匹配一个可选负号开头,包含数字和可选小数部分的数。
  7. *:匹配零个或多个空格。
  8. .:匹配一个任意字符。
  9. [\s\S]* :匹配零个或多个任意字符(包括换行符等所有字符,因为 [\s\S] 涵盖了所有的空白字符和非空白字符)。
  10. $:匹配字符串的结束位置。

使用示例

javascript 复制代码
	// 匹配一个数值范围字符串 "10-12"  "10.3 -20.3 "   "-10.4 - 20" "-10.4--20.4" 
	const rangeRegex = /^-?\d+(\.\d+)?( *)?-( *)?(-?\d+(\.\d+)?)( *)?.[\s\S]*$/;


	// 测试示例
	const testStrings = [
		"12-20  \t", //true
		"10.3-20.3", //true
		"-10.4-20dfafs", //true
		"-10.4--20.4", //true
		"10 - 12 ", //true
		"10.3 - 20.3  ", //true
		"-10.4 - 20   ", //true
		"-10.4 - -20.4   ", //true
		"10.0",  //false
		"-1230.1 " //false
	];
		
	testStrings.forEach(str => {
		console.log(str + ": " + rangeRegex.test(str));
	});

在上述示例中,testStrings 数组包含了一些测试字符串,通过 regex.test(str) 方法来检查每个字符串是否匹配正则表达式,并将匹配结果打印到控制台。

相关推荐
Mr_Mao17 分钟前
告别选型困难!集 VueUse、ahooks、Mantine 于一身:286 个 Hook 的 ReaUse 来了
前端·javascript·react.js
默_笙1 小时前
🚙 一条腿走路会摔:ES 关键词检索、混合召回与 ReRank 裁判
前端·javascript
dsyyyyy11012 小时前
Vue 3 Watch 监视完全指南
前端·javascript·vue.js
u0111026754 小时前
Vue 3 实现图片裁剪框:拖动、缩放与固定宽高比
前端·javascript·vue.js
0nirvana05 小时前
从普通 script 到 ESM:一文搞懂 JavaScript 模块、IIFE 和 window
javascript
wshzd6 小时前
LLM之Agent(104)|DeepSeek-Harness(十三)ReactLoopAgent 总览:kick → turn → step
开发语言·前端·javascript
天天喝旺仔7 小时前
浏览器渲染原理:从解析 HTML/CSS、构建渲染树到重排重绘与首屏优化
前端·javascript·css·性能优化·html
Days20508 小时前
时间胶囊项目正式发布
javascript·gpt·php
朱 欢 庆8 小时前
el-table-v2 虚拟表格组件
前端·javascript·vue.js
OpsEye8 小时前
企业大模型用量成本该如何监控和管控?
javascript·ai编程