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

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

相关推荐
amy_jork9 分钟前
npm删除包
开发语言·javascript·ecmascript
max5006002 小时前
基于桥梁三维模型的无人机检测路径规划系统设计与实现
前端·javascript·python·算法·无人机·easyui
我命由我123453 小时前
软件开发 - 避免过多的 if-else 语句(使用策略模式、使用映射表、使用枚举、使用函数式编程)
java·开发语言·javascript·设计模式·java-ee·策略模式·js
萌萌哒草头将军3 小时前
Node.js v24.6.0 新功能速览 🚀🚀🚀
前端·javascript·node.js
AALoveTouch4 小时前
大麦APP抢票揭秘
javascript
持久的棒棒君5 小时前
启动electron桌面项目控制台输出中文时乱码解决
前端·javascript·electron
小小愿望7 小时前
移动端浏览器中设置 100vh 却出现滚动条?
前端·javascript·css
烛阴8 小时前
TypeScript 接口入门:定义代码的契约与形态
前端·javascript·typescript
掘金安东尼8 小时前
使用自定义高亮API增强用户‘/’体验
前端·javascript·github
夏日不想说话9 小时前
API请求乱序?深入解析 JS 竞态问题
前端·javascript·面试