嘿那里,我正在尝试更换
<blockquote>...</blockquote>
带
>> ...
这是我的代码:
var testhtml = 'sdkjhfbs <blockquote>skldfjsfkjghbs\n sdjkfhb ksdbhv isl\n kdjbhdfgkj bs</blockquote>kdjfgnkdfj';
alert(blockquoteConvert(testhtml));
function blockquoteConvert(html) {
return '>>' + html.
replace(/<blockquote>([^]+)<\/blockquote>/gi,"$1").
replace('/\n/','\n>> ');
}
但它找不到Linebreaks。 (我检查了indexOf('\ n'))。
我该怎么做?
答案 0 :(得分:7)
尝试不带引号:
replace(/\n/g,'\n>> ')
现在分隔符是文字正则表达式声明语法的一部分,而不是模式本身的一部分。
答案 1 :(得分:0)
使用双反斜杠\\n
应该会有所帮助。
答案 2 :(得分:0)
您需要进行全局替换,否则替换将仅匹配第一个换行符。此外,您不能在正则表达式周围使用引号,因为斜杠将成为搜索字符串的一部分,因此请尝试以下操作:
replace(/\n/g,'\n>> ')
答案 3 :(得分:0)
你很接近,但你的语法不一致:
function blockquoteConvert(html) {
return '>> ' + html.
replace(/<blockquote>([^]+)<\/blockquote>/gi,"$1").
replace(/\n/g,'\n>> ');
}
答案 4 :(得分:0)
试试这个
var testhtml = 'sdkjhfbs <blockquote>skldfjsfkjghbs\n sdjkfhb ksdbhv isl\n kdjbhdfgkj bs</blockquote>kdjfgnkdfj';
alert(blockquoteConvert(testhtml));
function blockquoteConvert(id) {
car text = document.getElementById(id).value;
text = text.replace(/\n\r?/g, '>>');
}
Or use jquery
$('#caption').html($('#caption').text().replace(/\n\r?/g, '>>'));
答案 5 :(得分:0)
好的,现在我很困惑。请试试这个:
var testhtml = 'sdkjhfbs <blockquote>skldfjsfkjghbs\n sdjkfhb ksdbhv isl\n kdjbhdfgkj bs</blockquote>kdjfgnkdfj';
alert(convertLineBreaks(testhtml));
alert(blockquoteConvert(testhtml));
function blockquoteConvert(html) {
return html
.replace(/<blockquote>([^]+)<\/blockquote>/gi,convertLineBreaks("$1"));
}
function convertLineBreaks(text) {
return '>>' + text.replace(/\n/g,'\n>> ');
}
在更换blockquote后,我的换行符似乎丢失了......?