[英]extract string with Regular expression
它只是HTML代碼的一小部分,我希望用<?包裝所有代碼。 和? >。
簡單地說,我只想提取下面給出的字符串。 例如,
var code='<td>Total Response Sets</td><? if(byExposure) { ?><td style="text-align:right;padding-right:10px"><?= question.totals["control"] ?></td>';
// how to extract the required code with regular expression ?
使用npinti后,我使用下面的代碼,它給出了我在<%&%>之間的第一個表達式。 但是,我如何獲得下面幾個表達式?
var patt=/<\?\s*(.*?)\s*\?>/g;
var result=patt.exec(code);
console.log(result[1]); // o/p -> if(byExposure) {
(有關詳細信息,代碼用於下划線中的模板化.js)
這個正則表達式:
<\?\s*(.*?)\s*\?>
應該符合你的需要。 從給定的字符串中匹配以下內容:
<? if(byExposure) { ?>
<?= question.totals["control"] ?>
然后,您可以使用組提取標記之間的內容。 檢查此之前的SO線程,看看它是如何做。
這應該完成工作:
var code='<td>Total Response Sets</td><? if(byExposure) { ?><td style="text-align:right;padding-right:10px"><?= question.totals["control"] ?></td>';
var patt=/<\?\s*(.*?)\s*\?>/g;
var result=patt.exec(code);
while (result != null) {
alert(result[1]);
result = patt.exec(code);
}
而不是exec
,使用match
方法:
res = code.match(patt);
輸出:
["<? if(byExposure) { ?>", "<?= question.totals["control"] ?>"]
我不確定你想要提取什么。 你只需要<?之間的第一個字符串嗎? 然后你可以使用:
(/<\?(.*?)\?>/.exec( code ))[1]
這將返回if(byExposure){ 。 如果你想匹配第一個<? 和最后?>,然后你可以使用:
(/<\?(.*?)\?>/.exec( code ))[1]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.