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

匹配一个范围的字符串, 比如 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) 方法来检查每个字符串是否匹配正则表达式,并将匹配结果打印到控制台。

相关推荐
mCell4 小时前
Lua 编程入门:从基础语法到元表
javascript·算法·lua
伟大的兔神4 小时前
我做了一个本地优先的 AI 图片工作台:Loomora v1.0.0 正式发布
前端·javascript·vue.js
fangzhanpeng1686 小时前
(前端)2.js变量作用域样例
开发语言·前端·javascript
码艺-Alimjan9 小时前
Vue项目源码备份最佳实践:无视node_modules,打包体积仅2MB
前端·javascript·vue.js
xixiaoyunya10 小时前
JavaScript 异步编程全解析:从回调地狱到 async/await 的演进之路
开发语言·javascript·ecmascript
张元清10 小时前
React useScrollLock Hook:为弹窗锁住页面滚动 (2026)
javascript·react.js
Sayai10 小时前
【无标题】ECharts 实现日志量异常检测:基线 ±Kσ 基带 + 灵敏度切换(Vue2 实战)
前端·javascript·echarts
默_笙11 小时前
💌 为了把"主题色"传给孙子组件,我翻了五层楼——直到遇见了 useContext
前端·javascript
小KK_12 小时前
JS 事件循环从小白视角入门:宏任务、微任务与 async/await 一网打尽
前端·javascript
kisshyshy13 小时前
从 useRef 到 Web Worker:理解 React 可变对象与浏览器多线程
前端·javascript·react.js