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