我有一个包含以下注释的表格单元格:
<!-- FieldName="Predicted Process Equipment Potable Usage"
FieldInternalName="PredictedProcessEquipmentPotable"
FieldType="SPFieldNumber" -->
有许多表格单元格具有相似的模式注释,其中属性的值不同,但属性始终相同(FieldName,FieldInternalName和FieldType)。
如何在此类评论中使用REGEX提取FieldInternalname? 是否有非正则表达方式呢?
请帮忙!
答案 0 :(得分:2)
使用以下正则表达式并从组索引1中获取FieldInternalName
的值。
<!--[\S\s]*?FieldInternalName="([^"]*)"[\S\s]*?-->
> var m = 'foo\n <!-- FieldName="Predicted Process Equipment Potable Usage"\n FieldInternalName="PredictedProcessEquipmentPotable"\n FieldType="SPFieldNumber" -->';
undefined
> console.log(/<!--[\S\s]*?FieldInternalName="([^"]*)"[\S\s]*?-->/.exec(m)[1]);
PredictedProcessEquipmentPotable
答案 1 :(得分:1)
是否有非正则表达方式呢?
commentNode.data;
评论节点有 nodeType 8
,所以如果您不知道它将是哪个子节点,您可以编写类似的函数此
function getNodesByType(node, type, childrenOnly) {
var i,
o = [];
if (node.childNodes && node.childNodes.length)
for (i = 0; i < node.childNodes.length; ++i)
if (node.childNodes[i].nodeType === type)
o.push(node.childNodes[i]);
else if (!childrenOnly && node.childNodes[i].nodeType === 1)
Array.prototype.push.apply(
o,
getNodesByType(node.childNodes[i], type, childrenOnly)
);
return o;
}
并调用getNodesByType(yourTdElement, 8, true);
以获取评论节点的数组,这些评论节点是您<td>