【问题标题】:JS-regex, How can I make it to one replace() method?JS-regex,我怎样才能使用一种 replace() 方法?
【发布时间】:2016-06-25 11:46:49
【问题描述】:

我的目标是:

全部删除。 除了数字,但删除数字1到9之前的零

我有这个正则表达式:

var validValue = inputValue.replace(/[^\d]/g, '').replace(/^0*/g, '');

但我想把它做成一个replace()

那我该怎么做呢?

【问题讨论】:

  • 我不确定你可以。分两步执行此操作有什么问题?
  • 没问题,但我希望它更短,如果可能我不知道是否可能
  • 这个inputValue来自哪里?
  • 你可以使用<input type="number" name="digit" />

标签: javascript regex


【解决方案1】:

您想删除所有前导零和所有非数字符号。可以用

/^0+|\D+/g

regex demo

正则表达式匹配

  • ^0+ - 1 个或多个前导数字(位于字符串开头的数字)
  • | - 或
  • \D+ - 一个或多个非数字符号

var re = /^0*|\D+/g; 
var str = '00567600ffg5566';
var result = str.replace(re, '');
document.body.innerHTML = str + " >>> " +  result;

【讨论】:

  • 谢谢!也谢谢你的解释!
  • @Thomas:It works。它删除字符串中的前导零和所有非数字。 Moti,/g 中的 /g 没有意义,因为字符串的开头只能匹配一次。此外,此正则表达式可能匹配空字符串,因此,最好将 * 替换为 + 量词。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
  • 2020-01-03
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 1970-01-01
相关资源
最近更新 更多