在javascript中获取字符串之间的文本模式

时间:2017-07-27 11:23:41

标签: javascript regex string-matching

这是HTML文本

<select name="ctl00$ContentPlaceHolder1$ddlyear" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$ddlyear\',\'\')', 0)" id="ctl00_ContentPlaceHolder1_ddlyear" class="page-heading" style="background-color: rgb(255, 244, 244); width: 95px; outline: 1px solid blue;">   
<option selected="selected" value="Select Year">Select Year</option> <option value="2000">2000</option>    
<option value="2001">2001</option>    
<option value="2002">2002</option>    
<option value="2003">2003</option>    
<option value="2004">2004</option>    
<option value="2005">2005</option>    
<option value="2006">2006</option>    
<option value="2007">2007</option>    
<option value="2008">2008</option>    
<option value="2009">2009</option>    
<option value="2010">2010</option>    
<option value="2011">2011</option>    
<option value="2012">2012</option>    
<option value="2013">2013</option>    
<option value="2014">2014</option>    
<option value="2015">2015</option>    
<option value="2016">2016</option>    
<option value="2017">2017</option>    
</select>

由此我试图提取像 frm 2000到2017年这样的年份,所以为此我首先在字符串“”之间进行正则表达式模式匹配,然后从中获取所有数字但是我的正则表达式出错了。

var regex = /<option selected(.*)</option>/;
var newtext = \"{{text}}\".replace(regex,'')

获得这些年的第一步本身就是失败了。 哪有错误的建议? 任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

通过直接查询select元素并获取其option值而不是使用纯HTML来更容易:

var yearsArray = [];

var options = document.getElementById('ctl00_ContentPlaceHolder1_ddlyear').options;

// i = 1, because we don't want the option[0], which is "Select Year"
for(var i = 1; i < options.length; i++) {
	yearsArray.push(options[i].value);
}

console.log(yearsArray);
<select name="ctl00$ContentPlaceHolder1$ddlyear" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$ddlyear\',\'\')', 0)" id="ctl00_ContentPlaceHolder1_ddlyear" class="page-heading" style="background-color: rgb(255, 244, 244); width: 95px; outline: 1px solid blue;">
  <option selected="selected" value="Select Year">Select Year</option>
  <option value="2000">2000</option>
  <option value="2001">2001</option>
  <option value="2002">2002</option>
  <option value="2003">2003</option>
  <option value="2004">2004</option>
  <option value="2005">2005</option>
  <option value="2006">2006</option>
  <option value="2007">2007</option>
  <option value="2008">2008</option>
  <option value="2009">2009</option>
  <option value="2010">2010</option>
  <option value="2011">2011</option>
  <option value="2012">2012</option>
  <option value="2013">2013</option>
  <option value="2014">2014</option>
  <option value="2015">2015</option>
  <option value="2016">2016</option>
  <option value="2017">2017</option>
</select>