在字符串

时间:2016-02-27 22:47:06

标签: javascript jquery regex

假设,我有这样的字符串

"Lorem ipsum dolor sit amet, [b]consectetur adipisici elit[/b], sed eiusmod tempor [i]incidunt ut labore[/i] et [size =12]dolore [/size=12] magna aliqua"

我想得到这样的Lorem ipsum dolor sit amet, consectetur adipisici elit ,sed eiusmod tempor incidunt ut labore et dolore magna aliqua&#34 ;。但这不是我的问题。

问题:当我附加到div时,如何在[b]...[\b][i] ..[/i]之间获取字符串或在textarea中的[size=12].. [/size=12]之间添加字符串? [b] [/ b]之间的文字应变为粗体[i][/i]之间的文字应变为斜体[size][/size]之间的文字应为字体大小。

1 个答案:

答案 0 :(得分:1)

您需要两种分开的模式:

获取[b][\b]之间的所有内容:

\[b\](.*?)\[\/b\]

var str = "Lorem ipsum dolor sit amet, [b]consectetur adipisici elit[/b], sed eiusmod tempor [i]incidunt ut labore[/i] et dolore magna aliqua";
var result = /\[b\](.*?)\[\/b\]/.exec(str);
document.write(result[1]);

获取[i][/i]之间的所有内容:

\[i\](.*?)\[\/i\]

var str = "Lorem ipsum dolor sit amet, [b]consectetur adipisici elit[/b], sed eiusmod tempor [i]incidunt ut labore[/i] et dolore magna aliqua";
var result = /\[i\](.*?)\[\/i\]/.exec(str);
document.write(result[1]);

此外,如果您需要更换内容,请尝试以下方法:

    var str = "Lorem ipsum dolor sit amet, [b]consectetur adipisici elit[/b], sed eiusmod tempor [i]incidunt ut labore[/i] et dolore magna aliqua";
    var result = str.replace(/\[b\]|\[\/b\]/g,'**').replace(/\[i\]|\[\/i\]/g,'*');
    document.write(result);