我可以打印出所有ng-show值,但无法过滤出想要的内容。
我不知道这是正则表达式错误还是angularjs。我直接在开发人员工具中尝试过,结果成功。
请检查Codepen中的完整代码,谢谢
var thList = $('thead').find('th');
var fieldPattern = /\'(.*)\'.*\|.*/g;
var allTableField = [];
var valueList = [];
angular.forEach(thList, function(th) {
var value = $(th).attr('ng-show');
console.log(value);
if (/showField/g.test(value)) {
valueList.push(value);
var results = fieldPattern.exec(value);
if (results) {
allTableField.push(results[1]);
}
}
});
对不起,我的英语很糟,很难表达。
我想通过JQ获取ng-show值,并过滤出与正则表达式匹配的值。
最后,我只得到了一部分。
答案 0 :(得分:0)
因此,您的valueList
比您的allTabField
包含更多的“值”,其余的值由正则表达式fieldPattern
过滤
编辑:
使用RegExp构造函数,例如var fieldPattern = new RegExp("\'(.*)\'.*\|.*");
替代解决方案:
angular.forEach(thList, function(th) {
var value = $(th).attr('ng-show');
console.log(value);
if (/showField/g.test(value)) {
valueList.push(value);
/* changes are made here */
var index = value.indexOf('|');
var results = value.substring(1, index - 1);
if (results) {
allTableField.push(results);
}
/* End of changes */
}
});