首页 > 解决方案 > 需要在 javascript 中编写与整个字符串中的特定模式(数字/十进制 - 数字/十进制)匹配的正则表达式

问题描述

我需要在 javascript 中为来自后端的字符串编写逻辑,该字符串应该包含一个特定的模式。

模式应该是:- 数字/十进制连字符数字/十进制(例如:- “100 - 300”、“1 - 9.999”、“2.8 - 300”像这样)

我尝试了以下逻辑,但它只检查字符串的第一个字符,如果任何其他字符串来自后端(例如:- 100 Nuvera - (c900Link)bunch),它就会失败。请建议是否有人有更好的方法。

inputVisibility:function(w,g){
  var regex1 = /^[\d\-\d]/g;
  var strs = regex1.exec(w);
  return ( strs !== null && g === "S")?true:false;
}

标签: javascriptregex

解决方案


您可以尝试捕获可选的小数部分:

(\d*(\.\d+)?) - (\d*(\.\d+)?)

这里发生的是

\d*      > Match any number of digits
(\.\d+)? > Optionally match a literal decimal point followed by 1..n digits

如果您需要提取单个值,则相关匹配组将是 1 和 3。

https://regex101.com/r/7OoYUz/1


推荐阅读