php - JavaScript 和 PHP 中按逗号\换行分割字符串

标签 php javascript string split csv

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

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

// 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”字符作为包含“\n”的单行文本发送。谢谢

最佳答案

尝试添加全局搜索标志:

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

请注意,/\n/g 不在单引号中,这意味着它是 regular expression .

同样,要从换行符变为逗号,请尝试:

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

这个问题类似于"How to replace all points in a string in JavaScript."

关于php - JavaScript 和 PHP 中按逗号\换行分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155634/

相关文章:

python - 使用列表理解替换字符串

python - 在 Python 字符串中的最后一个分隔符上拆分?

php - Laravel 软删除在数据透视表中不起作用

javascript - 有没有办法使用js从html文本框中获取文本?

javascript - 错误 : Write After End Node. js,Express

javascript - 何时使用 Uint8Array、Uint16Array、Uint32Array

java - 从以 "abc"开始并以 "def"结束的字符串获取字符串

php - Laravel Restfull Controller 和路由 ajax/sync 请求

php - 如何使用 PHP 向网页发出请求?

htmlentities 的 PHP XMLReader 问题