我試圖將XML標記轉換爲大寫,同時保留屬性和文本的大小寫。因此,例如使用JavaScript正則表達式將XML標記轉換爲大寫
<Mytag Category="Parent">Value1</Mytag>
變爲
<MYTAG Category="Parent">Value1</MYTAG>
我有一個正確匹配的XML標記一個正則表達式,但大寫功能似乎並不奏效。
myXmlElement.replace(/<(\/)*([a-zA-Z_0-9]+)([^>]*)>/g,"<$1" + "$2".toUpperCase() + "$3>")
我使用String.prototype.toUpperCase.apply("$2")
,以及傳遞函數作爲replace參數
myXmlElement.replace(/<[\/]*([a-zA-Z_0-9]+)[^>]*>/g,
function($1,$2,$3){return <$1 + $2.toUpperCase() + $3>})
但是,這並不工作,因爲$ 1,$ 2,$ 3也試圖似乎指整個匹配元素($ 1 =,$ 2 =)
我敢肯定在這裏我忽略了一些小事,任何人都可以幫忙嗎?
那是一個錯字,謝謝你的注意。然而,當我這樣做時,參數仍然沒有正確的值。 – John
將我的評論更新爲完整答案,希望對您有所幫助;) – Tharabas
不要使用正則表達式來解析標記,它會失敗。例如它不能區分可能包含不是標記的匹配模式的CDATA(如腳本元素內容:'if(a
RobG