![](/img/trans.png)
[英]How to find out pairs of opening and closing html tags using javascript?
[英]Create a Javascript RegExp to find opening tags in HTML/php template
我正在嘗試編寫一個Javascript HTML / php解析器,它將從HTML / php源中提取所有開始標記,並返回標記和屬性的類型及其值,同時監視是否應評估值/屬性靜態文本或php變量。 問題是當我嘗試編寫Javascript RegExp模式時,更具體地說是某些罕見情況。 RegExp我能夠提出任何涉及負面的lookbehind(以處理關閉的php標記 - 即匹配一個沒有問號的結束括號)或在某些情況下失敗。 lookbehind版本看起來像:
<[a-zA-Z]+.*?(?<!\?)>
...除了我必須避免使用lookbehind的情況外,它的工作原理很完美。 更友好的Javascript版本是:
<[a-zA-Z]+((.(?!</)(?!<[a-zA-Z]+))*)?>
......在這種情況下除外:
<option value="<?php echo $img; ?>"<?php echo ($hpb[$i]['image_filename']==$img?' selected="selected"':''); ?>><?php echo $img; ?></option>
我是否完全搞砸了這個問題,或者在我的情況下真的有必要嗎? 任何幫助是極大的贊賞。
只需確保'>'之前的最后一個字母不是?,使用[^?]。 不需要前瞻或后顧之憂。
<[a-zA-Z](.*?[^?])?>
括號和最后? 也是為了匹配像<b>
這樣的標簽。
編輯該解決方案不適用於沒有屬性的單個字符標簽。 所以這是一個做的:
<[a-zA-Z]+(>|.*?[^?]>)
更簡單的答案是<[^ / ^>] +>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.