正则表达式 - Javascript 正则全局匹配提取 的问题 /selectNull\(\'([\w-]+)\'\)/ig
PHP中文网
PHP中文网 2017-04-10 14:31:34
0
2
680

需求

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循环才可以得到所有的。

PHP中文网
PHP中文网

认证0级讲师

全部回覆(2)
Peter_Zhu

http://jsfiddle.net/BzFE9/

Ty80

如何用正则提取,@公子已经给出了不错的答案,但是我对楼主这么做有些不同意见。

看楼主的代码中AgentIdP333GameId333是两个比较重要的属性,或者说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');
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!