[英]Replacing specific content with other content using javascript in a td element
[英]Replacing [TD] with <TD> in Javascript
我有一個從Oracle進程返回的數據字符串,該字符串輸出[TD]
和[/TD]
而不是<TD>
和</TD>
來表示html表單元格。 我需要使用Javascript將[TD]
轉換為<TD>
並將[/TD]
為<TD>
,其元素的ID為constantValues。
我已經在這里搜索了Google,並進行了搜索,這是到目前為止我所獲得的最接近的信息,但都不起作用。 非常感謝您在這里獲得的任何幫助。
function strReplace() {
var string = document.getElementById('unchangedValues').innerHTML;
var res1 = string.replace(/(\[)|(\])/g, function(match, p1, p2) {
if (p1) return "<";
if (p2) return ">"
});
}
而且我也嘗試過:
function substituteValues() {
const str = document.getElementById('unchangedValues').innerHTML;
const res1 = str.replace(/\[TD\]/g, '\<TD\>');
document.getElementById('unchangedValues').innerHTML = res1;
}
謝謝
您可以使用
console.log( "[TD] and [/TD]".replace(/\\[(\\/?TD)]/gi, '<$1>') )
/\\[(\\/?TD)]/gi
regex匹配
\\[
-一個[
(\\/?TD)
-組1: /
1或0次,然后是TD
]
-一個]
炭 /gi
多次出現,不區分大小寫。 如果TD
使用中可能有屬性
// Assuming values can't contain ] and " are value qualifiers console.log( '[TD key="value"] and [/TD]'.replace(/\\[(\\/?TD(?:\\s[^\\]]*)?)]/gi, '<$1>') ); // Assuming values can contain ] and " or ' are value qualifiers console.log( '[TD key="va[l]ue here" key2=\\'value 2\\' auto ] and [/TD]'.replace(/\\[(\\/?TD(?:\\s+\\w+(?:=(?:"[^"]*"|'[^']*'|\\w+))?)*)\\s*]/gi, '<$1>') );
任何標簽的通用解決方案,不僅限於[TD]
:
console.log( 'Lorem [TD FOO="ipsum"] dolor sit [/TD] amet' .replace(/\\[([^\\]]+)\\]/g, '<$1>') );
僅使用方括號使用2 str.replace()
怎么樣?
var str = 'John [TD] Smith [/TD]'; var newstr = str.replace(/\\[/gi, '<').replace(/]/gi,'>'); console.log(newstr);
如果您的id
位於table
元素甚至tr
元素上,並且格式不正確(我不知道,因為您沒有發布HTML),瀏覽器會將無效的內容移到表格之外(或最接近的內容)有效位置)。 您可以看到運行時, tr
沒有數據,這使您的代碼嘗試格式化空字符串,然后將其保存回去。
console.log(document.getElementById('unchangedValues').innerHTML)
<table id="unchangedValues"> <tr> [TD]Hi[/TD] [TD]Hi[/TD] [TD]Hi[/TD] [TD]Hi[/TD] </tr> </table>
從輸出中可以看到, [TD]
和[/TD]
都已從表中刪除,但是,如果您檢查輸出,則瀏覽器會自動將值移到表的上方或下方。
要解決此問題,您需要將項目保存在內存中。 然后,您可以修改項目,然后將其保存到表中。
let str = `[TD]Hi[/TD] [TD]Hi[/TD] [TD]Hi[/TD] [TD]Hi[/TD]` document.querySelector('#unchangedValues tr').innerHTML = str.replace(/\\[(\\/?TD)\\]/g, '<$1>')
<table id="unchangedValues"> <tr> </tr> </table>
您也可以用WiktorStribiżew的regExp檢查替換
if(str.indexOf('[TD]')!==-1 || str.indexOf('[/TD]')!==-1){str = str.replace(/\[(\/?TD)]/gi, '<$1>')}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.