从字符串中提取3个数字并将它们放入变量中

时间:2015-05-19 20:51:33

标签: javascript jquery

我试图从字符串中提取3个数字并将它们放入变量

这是html

<a href="javascript:theNumbers( 09222004, 05232015, '4815162342' );">Click Me</a>

我用jQuery

获得了href字符串
$('a').attr('href')

,结果是

javascript:theNumbers( 09222004, 05232015, '4815162342' );

我想将每个值(09222004和05232015和4815162342)提取到变量,以便我可以在不同的过程中使用每个数字

4 个答案:

答案 0 :(得分:1)

<a data-numbers="'09222004, 05232015, 4815162342'">Click Me</a>

获得价值

var numbers =$('a').attr('data-numbers').split(',');

这会返回一个数组

[&#39; 09222004&#39;,&#39; 05232015&#39;,&#39; 4815162342&#39;]

答案 1 :(得分:1)

看看这个,我希望它有所帮助:

$(document).ready(function(){
  // get href text attribute
  var mString = $('a').attr('href');
  // get the text between ()
  var mResult = mString.match(/\((.*)\)/);
  // split mResult
  var numbers = mResult[1].split(',');
  // show the result
  for(var i = 0; i < numbers.length; i++){
    $("#numbers").append('Number ' + i + ' is ' + numbers[i] + '<br>');    
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="javascript:theNumbers( 09222004, 05232015, '4815162342' );">Click Me</a>
<div id="numbers"></div>

答案 2 :(得分:0)

String.prototype.split() str.split([separator[, limit]])会在这里为您提供帮助,然后是逗号。

Parse大小为3的数组元素

答案 3 :(得分:0)

仅供记录,接受的答案并不符合返回可用数字的要求。实际上,已经接受的答案(下面的方法A)根本没有像OP已经指出的那样起作用。小提琴中给出的答案(方法B)更好,但仍然返回错误的数据,即parseInt(s)= NaN。

但是,只需删除非数字字符并在逗号上拆分,就可以返回一组干净的数据:

href.replace(/[^0-9,]/g,'').split(',');

运行代码段以比较各种方法的输出:

&#13;
&#13;
<html>
<body>
<xmp id="stdout" style="background-color:black; color:lime;padding:1em;"></xmp>
<script type="text/javascript">
    
  var data = {}, href = "javascript:theNumbers( 09222004, 05232015, '4815162342' );"
   
  data.method_A = href.split(',');    
    
  data.method_B = href.replace("javascript:theNumbers(","").replace(");","").split(',');

  data.method_C = href.replace(/[^0-9,]/g,'').split(',');

  document.getElementById('stdout').innerHTML = JSON.stringify( data, null, '  ' );
    
</script>
</body>
</html>
&#13;
&#13;
&#13;