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

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

相关推荐
Live000001 小时前
在鸿蒙中使用 Repeat 渲染嵌套列表,修改内层列表的一个元素,页面不会更新
前端·javascript·react native
柳杉1 小时前
使用Ai从零开发智慧水利态势感知大屏(开源)
前端·javascript·数据可视化
球球pick小樱花2 小时前
游戏官网前端工具库:海内外案例解析
前端·javascript·css
喝水的长颈鹿2 小时前
【大白话前端 02】网页从解析到绘制的全流程
前端·javascript
用户14536981458782 小时前
VersionCheck.js - 让前端版本更新变得简单优雅
前端·javascript
codingWhat2 小时前
整理「祖传」代码,就是在开发脚手架?
前端·javascript·node.js
码路飞2 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
Lee川2 小时前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试
颜酱3 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
一拳不是超人5 小时前
Electron主窗口弹框被WebContentView遮挡?独立WebContentView弹框方案详解!
前端·javascript·electron