Javascript 正则全局匹配提取

需求


selectNull('AgentIdI333');selectNull('GameId333');

if(this.value) 

selectChange(jsonUrl.myAgent+this.value,'AgentIdI333','','AGENTID','AGENTNAME')

中提取出


["AgentIdI333","GameId333"]

正则

/selectNull\(\'([\w-]+)\'\)/ig 

测试

<select name="AgentIdP" id="AgentIdP333" class="customTAB"

onchange="selectNull('AgentIdI333');selectNull('GameId333');if(this.value) selectChange(jsonUrl.myAgent+this.value,'AgentIdI333','','AGENTID','AGENTNAME')">

</select>



<script type="text/javascript">

var html = document.getElementById('AgentIdP333').getAttribute('onchange');

// var m = html.match(/selectNull\(["\']{1}([\w]+)[\'"]{1}\)/ig);

var m = html.match(/selectNull\(\'([\w-]+)\'\)/ig);

//["selectNull('AgentIdI333')", "selectNull('GameId333')"]


console.log(m);

</script>



补充

现在可以了,原来javascript中要用while循环才可以得到所有的。


慕森卡
浏览 668回答 2
2回答

潇湘沐

看楼主的代码中AgentIdP333和GameId333是两个比较重要的属性,或者说333是比较重要的值。一方面,这个属性的值写死在代码里暂且不论,还要从onchange函数中提取简直太多此一举了。不如使用data属性:<select name="AgentIdP" id="AgentIdP333" class="customTAB" data-agentid="333" data-gameid="333"></select><script type="text/javascript">var agent = document.getElementById('AgentIdP333');var agentId = agent.getAttribute("data-agentid");var gameId = agent.getAttribute("data-gameid");</script>你用jquery的话拿数据更简单:var agentId = $('#AgentIdP333').data('agentid');
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript