2014-09-13 88 views
0

我有這樣的評論表格單元格:正則表達式來提取HTML註釋屬性

<!-- FieldName="Predicted Process Equipment Potable Usage" 
      FieldInternalName="PredictedProcessEquipmentPotable" 
      FieldType="SPFieldNumber" --> 

有類似模式的意見,其中屬性的值不同許多表格單元格,但屬性總是相同(FieldName,FieldInternalName和FieldType)。

如何在這種類型的評論中使用REGEX提取FieldInternalname? 有沒有一種非正則的方式呢?

請幫忙!

回答

2

使用正則表達式如下從組索引1

<!--[\S\s]*?FieldInternalName="([^"]*)"[\S\s]*?--> 

DEMO

> 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 
+0

這似乎工作,但我如何在JavaScript上運行此正則表達式評論以提取FieldInternalName的值? – Athapali 2014-09-13 14:36:26

+0

@SariksaThapa更新... – 2014-09-13 14:44:58

1

得到FieldInternalName的價值有沒有這樣做太的非正則表達式的方式?

commentNode.data; 

評論節點有的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>