2014-11-09 76 views
0

我有动态添加CSS代码的textarea多行文本换行;”字符

我想的CSS看起来干净,想知道它可能每个之后的行分裂。‘;’字符。

I currently have it like this 
--------------------| 
display: inline;color: 
red;    | 
        | 
        | 
        | 
        | 
-------------------- 

And want it to be like this automatically 
--------------------| 
display: inline; | 
color: red;   | 
        | 
        | 
        | 
        | 
-------------------- 

有没有一种方法,我可以用jQuery或Javascript做到这一点

+0

听起来就像你需要一些JavaScript的钩子onchange事件,找到所有';'不在行尾的字符并将其替换为'; \ n'(例如,在分号后面添加一个新行)。 – scunliffe 2014-11-09 01:32:16

回答

0
// Using jQuery 
var val = $('textarea').val(); 
$('textarea').val(val.replace(/;/g, ';\n')); 

// Using plain javascript 
var textarea = document.getElementsByTagName('textarea')[0]; 
textarea.value = textarea.value.replace(/;/g, ';\n'); 
+0

如果在分号后已经存在换行符,这不会增加**额外的**换行符吗? – scunliffe 2014-11-09 02:38:24

+0

当然会的,但根据上面的问题,似乎字符串没有任何换行符:) – 2014-11-09 02:41:47

+0

这似乎工作得很好。 – UserDy 2014-11-10 18:06:53

0

如果您有jQuery的访问这应该工作;

因此,可以说你有一个textarea:

<textarea id="myTextarea"></textarea> 

您可以连接onchange事件处理程序来调整内容。

$(document).ready(function(){ 
    $('#myTextarea').change(function(){ 
    var oldVal = this.value; 
    var contentSplitBySemiColons = oldVal.split(';'); 
    var thisFragment; 
    for(var i=1;i<contentSplitBySemiColons.length;i++){ 
     thisFragment = contentSplitBySemiColons[i]; 
     if(thisFragment[0] != '\n'){ 
     contentSplitBySemiColons[i] = '\n' + thisFragment; 
     } 
    } 
    this.value = contentSplitBySemiColons.join(';'); 
    }); 
}); 

如果你想尝试一下,这里有一个它的JSFiddle。 http://jsfiddle.net/jeLscdm5/4/

+0

这似乎是一个很好的解决方案。尽管如果我也想在新的css行之前删除任何空格,这段代码是什么样的? – UserDy 2014-11-10 17:05:36

+0

我会运行一个类似的循环......用'\ n'字符分割......测试你关心的领先空格(空格,制表符)并删除它们的每一行......但是这*可以*删除故意的缩进在一个选择器内(这取决于你的用户,可能会使他们感到沮丧) – scunliffe 2014-11-10 17:23:53

相关问题