用jQuery正则表达式检查

时间:2018-09-15 16:16:07

标签: jquery

如何检查数字是否以“ 0”开头,以便我将其删除?正则表达式对我来说是一个黑暗的地方。

谢谢。

var val = $('.count-number').find('.row .num').text();

// check if val is starting with 0 and if so remove it (example 020 will change to 20)

3 个答案:

答案 0 :(得分:3)

如果您只想解析整数或浮点值:

val = parseInt(val, 10);
// or
val = parseFloat(val);

否则,如果要专门删除前导零:

if(val[0] === '0'){
    val = val.substring(1);
}

鉴于问题的描述,此处不需要使用正则表达式,但无论如何:

val = val.replace(/^0/, '');

或者,要删除字符串开头的任意数量的 0:

val = val.replace(/^0+/, '');

答案 1 :(得分:0)

您可以使用下面的代码行作为参考,而无需使用正则表达式

var a = 031;
if (a.toString().indexOf('0')==0) {
      a = parseInt(a.replace('0', ''));
   }

或者您也可以使用

var a = '0123';
var intA = parseInt(a);

答案 2 :(得分:-1)

您可以使用正则表达式跳过/^0?(.*)/的第一个零,并使用索引为1的捕获组。

$('#removezero').click(() => {
  $('.count-number').find('.row .num').each(function() {
    var $this = $(this);  // Assign the current .item to $this so we can manipulate it
    
    var text = $this.text();  // Get the text
   
    var re = /^0?(.*)/; // A regular expression that skips the first single zero if one occurs
    
    var myArray = re.exec(text); // Run the regular expression
 
    var withZero = myArray[0] // 0 index contains entire matched string. 
                              // assigned here just for demonstration purposes
  
    var withoutZero = myArray[1];
  
    // Do whatever you want with the withoutZero.
  
    $this.text(withoutZero);  // Here, we just replace the text without the zero.
                            
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="removezero">remove zero</button>
<div class="count-number">
  <div class="row">
    <p class="num">012</p>
  </div>
  <div class="row">
    <p class="num">23</p>
  </div>
  <div class="row">
    <p class="num">045</p>
  </div>
  <div class="row">
    <p class="num">0067</p>
  </div>
</div>

如果要跳过所有的前零,则应改用/^0*(.*)/