簡體   English   中英

JavaScript Replace-將br標簽轉換為新行

[英]JavaScript Replace - Convert br Tags To New Lines

我有一個JavaScript函數,如下所示:

function onAfterTranslate(item, translator) {
var thing = item.translated_text;
document.myform.keywords.value = "Translated Text:\r\n\r\n" + thing.replace(/<br>/g, "\r\n");
}

名為item的參數是一個對象,其中包含一個名為translated_text的屬性。

這些是此變量的內容:

mono <br> toro <br> gato <br> perro <br> elefante 

我要做的是將br標簽轉換為換行符。 (理想情況下,它應該在br標簽之前和之后尋找可選​​空格,並且它還應該接受存在的任何有效br標簽格式,但目前並不重要。)

但是,以上代碼中的replace命令不起作用,我無法弄清原因。

如果我刪除了replace命令,所以該行以變量名thing結尾,則它的行為符合預期,並以正確的值更新了表單中的textarea框。

即使我嘗試用星號代替字母“ o”,它也仍然不起作用,這表明我在這里做的根本是錯誤的。

有什么建議么?

您可以使用\\s查找空格和? 對於“ 前面的字符可能出現一次或不發生 ”。 正則表達式在下面。

/\s?(<br\s?\/?>)\s?/g

以下是帶有所有可能的br標簽的示例: <br><br /><br/>之間有一些空格。

 var input = document.getElementById('input').value; console.log(input); document.getElementById('output').value = input.replace(/\\s?(<br\\s?\\/?>)\\s?/g, "\\r\\n"); 
 textarea { width: 400px; height: 100px; } 
 <h3>input</h3> <textarea id="input"> fooo <br> bar <br> lorum ipsum dolor. valar durum <br /> kel alar fol <br /> durom <br />. a bread of kebab is tasteful !<br/> EOL </textarea> <hr /> <h3>output</h3> <textarea id="output"></textarea> 

嘗試

var text = "mono <br> totono <br> gato <br> elefante"
console.log( text.split( "<br>" ).join( "\n" ) );

和修剪空白

text.split( "<br>" ).map( function(val){ return String(val).trim(); } ).join( "\n" );

用於將其放在文本區域中

document.body.innerHTML +=  "<textarea>" + text.split( "<br>" ).map( function(val){ return val.trim() } ).join( "\n" ) + "</textarea>" ;

因此,事實證明,替換功能本質上很好(但是由於您的貢獻,現在得到了增強)-輸入數據的格式不是我所期望的。

我以為變量item.translated_text是一個數組元素(因為當我將其回顯到屏幕上時,我看到了我所期望的值),但事實證明它實際上是一個數組,正如我在顯示長度時所發現的那樣的變量,發現它只有1。

我現在懷疑我第一次想到的是item變量是JSON構造,而不是常規數組。

抱歉,如果我在此上浪費任何時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM