javascript - 正则表达式:如何匹配后面没有任何字符但允许空格后的字符的数字?

标签 javascript regex

需要帮助使正则表达式与这些条件匹配(请原谅我可能令人困惑的措辞)。

  1. 仅匹配以数字或点开头的
  2. 匹配数字、点和中间的空格
  3. 匹配到第一个空格,如果非数字跟在那个空格之后 如果空格后只有数字,则匹配它 如果数字后面有除点、空格或数字以外的任何字符,则返回 null。

到目前为止我已经明白了,但它仍然允许特殊字符跟在数字后面。

/^[0-9\.][0-9\.\s]+(?!\w)/

示例结果

"1500" should return "1500"
"1500 0" should return "1500 0"
"1500 a" should return "1500"
"1500&" SHOULD return null, but so far returns "1500"
"1500a" should return null, as it should.

最佳答案

你可以使用

/^[\d.][\d\s.]*(?!\S)/

参见 regex demoregex graph :

enter image description here

详情

  • ^ - 字符串的开始
  • [\d.] - 一个数字或一个点
  • [\d\s.]* - 0 个或更多数字、空格、点,尽可能多
  • (?!\S) - 后跟空格或字符串结尾。

JS 演示:

var strs = ['1500 0', '1500 a', '1500&', '1500a'];
var rx = /^[\d.][\d\s.]*(?!\S)/;
for (var i=0; i < strs.length; i++) {
  var m = strs[i].match(rx);
  if (m) {
    console.log(strs[i], "=>", m[0]);
  } else {
    console.log(strs[i], "=> NO MATCH");
  }
}

关于javascript - 正则表达式:如何匹配后面没有任何字符但允许空格后的字符的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57302491/

相关文章:

javascript - .each 函数不在最后一个元素上运行

javascript - 当鼠标悬停在 <a> 标签元素中时,如何完全改变图像的颜色?

javascript - Chrome 应用程序的文件沙箱在哪里?

regex - 带/P 的 Sed 正则表达式

javascript - 你如何测试 Backbone.js View 是否得到正确的 unbound() 和 destroyed()?

javascript - 添加本地存储以保存 Canvas 绘图

PHP- 正则表达式 - 如何从右到左阅读

python - 如何使用 python 和 regex 合并两个文本文件

java - 使用正则表达式解析句子,包括 java 中的项目符号列表

.net - ToPascalCase() C# for all caps 缩写