Javascript 语法错误:未终止的字符串文字?
如何计算文本区域中的换行数Javascript 语法错误:未终止的字符串文字?,javascript,Javascript,如何计算文本区域中的换行数 <?php echo "<textarea value=\"\" id=\"text\" maxlength=\"200\" wrap=\"virtual\" onChange=\"test()\"></textarea> <script> function test() {
<?php
echo "<textarea value=\"\" id=\"text\" maxlength=\"200\" wrap=\"virtual\" onChange=\"test()\"></textarea>
<script>
function test()
{
var text = $('#text').val();
var lines = text.split('\n');//SyntaxError: unterminated string literal
var count = lines.length;
console.log('+'+count); // Outputs 4
}
</script>";
?>
您需要在\n
中转义反斜杠。否则,它将由PHP解释,因为它位于双引号字符串中,因此它将成为Javascript中的文字换行符
var lines = text.split('\\n');
var textarea=document.getElementById(“countLines”);
var spaces=textarea.getAttribute(“cols”);
textarea.onmouseout=函数(){
变量行=textarea.value.split(“\n”);
对于(变量i=0;i 如果(lines[i].length,则不需要转义$(\“\35; text\”)
上的引号。因为这是JS代码,所以实际上需要引号。
<textarea cols="30" id="countLines"></textarea>
var textarea = document.getElementById("countLines");
var spaces = textarea.getAttribute("cols");
textarea.onmouseout = function() {
var lines = textarea.value.split("\n");
for (var i = 0; i < lines.length; i++)
{
if (lines[i].length <= spaces) continue;
var j = 0;
var space = spaces;
while (j++ <= spaces)
{
if (lines[i].charAt(j) === " ") space = j;
}
lines[i + 1] = lines[i].substring(space + 1) + (lines[i + 1] || "");
lines[i] = lines[i].substring(0, space);
}
var count = lines.length;
};