笔记
way
js分割csv文件
转自
http://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm
,把csv文件按分隔符切割后放在数组中。
//
This will parse a delimited string into an array of
arrays.
// The default delimiter is the comma, but this
//
can be overriden in the second argument.
CSVToArray:
function
(strData, strDelimiter)
{
//
Check to see if the delimiter is defined. If not,
//
then default to comma.
strDelimiter
=
(strDelimiter
||
"
,
"
);
//
Create a regular expression to parse the CSV values.
var
objPattern
=
new
RegExp(
(
//
Delimiters.
"
(\\
"
+
strDelimiter
+
"
|\\r?\\n|\\r|^)
"
+
//
Quoted fields.
"
(?:\
"
([
^
\
"
]*(?:\
"
\
"
[^\
"
]
*
)
*
)\
"
|
"
+
//
Standard fields.
"
([^\
"
\\
"
+ strDelimiter +
"
\\r\\n]
*
))
"
),
"
gi
"
);
// Create an array to hold our data. Give the array
// a default empty first row.
var arrData = [[]];
// Create an array to hold our individual pattern
// matching groups.
var arrMatches = null;
// Keep looping over the regular expression matches
// until we can no longer find a match.
while (arrMatches = objPattern.exec( strData )){
// Get the delimiter that was found.
var strMatchedDelimiter = arrMatches[ 1 ];
// Check to see if the given delimiter has a length
// (is not the start of string) and if it matches
// field delimiter. If id does not, then we know
// that this delimiter is a row delimiter.
if (
strMatchedDelimiter.length &&
(strMatchedDelimiter != strDelimiter)
){
// Since we have reached a new row of data,
// add an empty row to our data array.
arrData.push( [] );
}
// Now that we have our delimiter out of the way,
// let's check to see which kind of value we
// captured (quoted or unquoted).
if (arrMatches[ 2 ]){
// We found a quoted value. When we capture
// this value, unescape any double quotes.
var strMatchedValue = arrMatches[ 2 ].replace(
new RegExp(
"
\
"
\
""
,
"
g
"
),
"
\
""
);
}
else
{
//
We found a non-quoted value.
var
strMatchedValue
=
arrMatches[
3
];
}
//
Now that we have our value string, let's add
//
it to the data array.
arrData[ arrData.length
-
1
].push( strMatchedValue );
}
//
Return the parsed data.
return
( arrData );
}
posted on 2010-12-03 09:06
yuxh
阅读(1142)
评论(0)
编辑
收藏
所属分类:
JS
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2010年12月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
统计
随笔 - 48
文章 - 0
评论 - 2
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Android(1)
(rss)
j2ee(12)
(rss)
JDBC(2)
(rss)
jdk(17)
(rss)
JS(2)
(rss)
OO设计(2)
(rss)
python(1)
(rss)
SOA(1)
(rss)
web service(4)
(rss)
work(14)
(rss)
XML(1)
(rss)
协议(1)
(rss)
大数据(1)
(rss)
设计模式(2)
(rss)
随笔档案
2017年3月 (1)
2015年9月 (1)
2015年7月 (1)
2015年6月 (1)
2012年5月 (4)
2012年3月 (2)
2012年2月 (1)
2011年10月 (2)
2011年6月 (2)
2011年3月 (1)
2010年12月 (1)
2010年11月 (2)
2010年10月 (3)
2010年4月 (3)
2009年12月 (4)
2009年11月 (5)
2009年5月 (3)
2009年2月 (1)
收藏夹
文章收藏(1)
(rss)
博客
mathew的工作相关网站
I’m mathew, and this is my work-related web site。。。
搜索
最新评论
1. re: GSON简单处理JSON
sdfvs
--xfcv
2. re: Andriod webview实现文件上传
楼主能不能发个安卓的实例 谢谢啦
--xiuukin
阅读排行榜
1. HttpServletRequestWrapper相关(7186)
2. Andriod webview实现文件上传(5316)
3. JBoss Forge 2入门教程(4389)
4. GSON简单处理JSON(2133)
5. JAVA调用重写的祖父方法(2041)
评论排行榜
1. Andriod webview实现文件上传(1)
2. GSON简单处理JSON(1)
3. Java时区处理(0)
4. Hive2.1源码分析(一)启动脚本(0)
5. JBoss Forge 2入门教程(0)