[英]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.