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

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

相关推荐
张元清30 分钟前
React useObjectUrl Hook:预览文件与 Blob,不留内存泄漏(2026)
javascript·react.js
姑苏倾城客38 分钟前
Flutter中,html 与 dart 桥接沟通
javascript·flutter·html
小粉粉hhh2 小时前
Node.js(五)——编写接口
前端·javascript·node.js
大意的百合2 小时前
Electron 应用如何上架微软商店:从 MSIX 打包到商店提交
javascript·microsoft·electron
weedsfly3 小时前
单例模式在前端中的正确打开方式
前端·javascript·面试
多加点辣也没关系17 小时前
JavaScript|第4章:类型转换
开发语言·javascript
yqcoder17 小时前
httpOnly 是什么,又有什么用?
开发语言·前端·javascript
烬羽18 小时前
还在手动拼路径、写回调地狱?一文吃透 Node.js 的 path 和 fs
javascript·程序员·node.js
mONESY18 小时前
LangChain JS 高性能并行执行解析、工具调用底层封装
javascript
迅速的自行车19 小时前
从一段模板说起
前端·javascript·vue.js