在 JavaScript 和 PHP 中用逗号换行分隔字符串


Split string by comma ew line in JavaScript and PHP

这让我发疯了。我有一个PHP脚本,可以从MySQL获取一些数据并将其保存为字符串,其中元素用逗号分隔。

JavaScript 采用该字符串并将逗号替换为"'",并将其显示在文本区域中。现在,我可以从文本区域向文本添加新行。单击按钮时,字符串应转换回逗号分隔的元素,然后再次设置为PHP(通过AJAX)进行保存。问题出在 JavaScript 上,当文本区域中有超过 3 行时,它无法检测到"'"字符。

// These are the lines of the text-area, after replacing ',' by ''n'
var textarealines=input_hidden_element.value.replace(',',''n').replace(',',''n');
// When trying to replace ''n' by ',' and send back, PROBLEM!
var AjaxRequest = WT.AjaxObject();
    AjaxRequest.open('POST', WT.AjaxLocation, true);
    AjaxRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    AjaxRequest.send('values=' + textarealines.replace(''n', ',').replace(''n', ','));
        AjaxRequest.onreadystatechange = function() {
            // Bla bla bla
        }

那么,我做错了什么?最多两行,新行被逗号正确替换,但是当我添加超过 2 行时,只有前 2 行被替换,下一行以"n"字符发送,作为包含"'"的单行文本。谢谢

尝试添加全局搜索标志:

textarealines.replace(/'n/g, ',')

请注意,/'n/g不在单引号中,这意味着它是一个正则表达式。

同样,要从换行符转到逗号,请尝试:

input_hidden_element.value.replace(/,/g, ''n')

这个问题类似于"如何在 JavaScript 中替换字符串中的所有点"。