Javascript 如果已经包含逗号,如何拆分js字符串?
我在js文件中用逗号分割值时遇到问题。在index.php文件中,我从数据库中获取名称,并使用json_encode()返回如下数据Javascript 如果已经包含逗号,如何拆分js字符串?,javascript,php,regex,Javascript,Php,Regex,我在js文件中用逗号分割值时遇到问题。在index.php文件中,我从数据库中获取名称,并使用json_encode()返回如下数据 <?php $sql = "select id,name from my_table where id='$id'"; $query = mysql_db_query($dbname,$sql); while($row = mysql_fetch_array($query)){ $id = $row['id'];
<?php
$sql = "select id,name from my_table where id='$id'";
$query = mysql_db_query($dbname,$sql);
while($row = mysql_fetch_array($query)){
$id = $row['id'];
$name = $row['name'];
$arr['id'][] = $id;
$arr['name'][] = '"'$ans.'"';
}
echo json_encode($arr);
?>
如果响应数据没有像这样的逗号,那么这个js是有效的
"name one","name two","name three","name four"
但我遇到了一个问题,如果响应数据有逗号(“name one”、“name two、five”、“name three、six”、“name four”
),它将拆分为
“命名一”、“命名二”、“命名五”、“命名三”、“命名六”、“命名四”
这是我的问题。我想把它改成这样
"name one","name two","name three","name four"
“命名一”
,“命名二,五”
,“命名三,六”
,“命名四”
我还想从所有字符串中删除双引号
我已经花了很多时间来解决这个问题。但是不起作用。非常感谢您的帮助。您可以添加方括号,并利用JSON解析器来完成以下操作:
var s = '"name one", "name two , five" , "name three , six" , "name four"';
var arr = JSON.parse('[' + s + ']');
console.log(arr[0]); // name one
console.log(arr[2]); // name three , six
获取正确格式响应的正确方法是从服务器以相同格式发送响应 尝试更改
$arr['name'][='“$ans.”代码>至$arr['name'][]=$ans
这样,所有字符串都将添加到数组中,而不需要额外的引号,并且在响应为get时在客户端使用JSON.parse(response)
从字符串表示中获取JSON对象
如果无法更改响应格式(第三方API或任何其他原因),则可以使用JavaScript字符串方法
您可以使用删除额外的引号,并使用不在引号内的逗号拆分字符串
str.substring(1,str.length-1)
:从字符串中删除第一个和最后一个字符,从而删除第一个和最后一个引号
.split(/“\s*,\s*”/)
:将字符串拆分为”
,后跟任意数量的空格,然后是,
,然后是任意数量的空格,然后是引号。拆分为,“
,在和,
之间有任意数量的空格
var str=''name one'、'name two,five'、'name three,six'、'name four';
var arr=str.substring(1,str.length-1).split(/“\s*,\s*”/);
控制台日志(arr);
编写(“”+JSON.stringify(arr,0,4)+“”)代码>服务器的确切响应是什么?通过更改$arr['name'][]='“$ans.”检查是否正确代码>==>$arr['name'][]=$ans
删除额外的引号,然后您可以使用JSON.parse()
从StringObject获取对象非常感谢。现在,它起作用了。你能解释一下这段代码吗?因为我是web开发的新手。@上面的几点解释了这段代码,substring
删除第一个和最后一个引号,split
按拆分字符串,“
”。