如何在javascript中拆分字符串?
我有一个文本文件,其中包含日期和相应事件的列表,如下所示如何在javascript中拆分字符串?,javascript,Javascript,我有一个文本文件,其中包含日期和相应事件的列表,如下所示 txt: 2017-05-01: All Day Event: 2017-05-06: Day Event: 2017-05-15: abc Event: 2017-06-05: All Event: 2017-06-03: Al Event: 首先,我使用一个简单的拆分函数来拆分文本文件的内容 var text=xmlhttp.responseText; var amber=text.split(':'); 在琥珀色数组中,每个日期
txt:
2017-05-01: All Day Event:
2017-05-06: Day Event:
2017-05-15: abc Event:
2017-06-05: All Event:
2017-06-03: Al Event:
首先,我使用一个简单的拆分函数来拆分文本文件的内容
var text=xmlhttp.responseText;
var amber=text.split(':');
在琥珀色数组中,每个日期和事件都是同时存储的,我需要做的是单独访问日期并拆分日期、月份和年份,我尝试使用以下代码
var stwo="";
for (var i = 0; i < amber.length; i += 2) {
stwo = amber[i].split('-');
}
因为我认为stwo没有定义为数组,我做错了什么?我还有别的办法可以分开日期吗
这是我的完整代码
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv='Content-Type' content='text/html;charset=UTF-8' />
<title>SAPUI5 EVENT CALENDAR</title>
<script src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
id="sap-ui-bootstrap" data-sap-ui-libs="sap.m,sap.ui.layout,sap.me"
data-sap-ui-xx-bindingSyntax="complex"
data-sap-ui-theme="sap_bluecrystal"></script>
<script>
jQuery.sap.require("sap.me.Calendar");
jQuery.sap.require("sap.m.RadioButton");
calendar = new sap.me.Calendar({
firstDayOffset : 1
});
var xmlhttp,text;
xmlhttp=new XMLHttpRequest();
xmlhttp.open('GET','C:/Users/Manimaran/Desktop/project/nn.txt',false);
xmlhttp.send();
var text=xmlhttp.responseText;
var amber=text.split(':');
for (var t = 0; t < amber.length; t+=2)
{
calendar.toggleDatesType([amber[t]],sap.me.CalendarEventType.Type07,
true);
//document.write(a[i+1]+"<br>");
}
calendar.toggleDatesType([ "2017/05/15" ],
sap.me.CalendarEventType.Type07,
true);
var msgLabel = new sap.m.Label({
width : "100%"
});
calendar.attachTapOnDate(function(oEvent) {
/* date=oEvent.getParameters().date;
msgLabel.setText(date)*/
});
calendar.attachChangeCurrentDate(function(oEvent) {
var stwo=[" "," "];
for (var i=0;i<amber.length;i+=2)
{
stwo=amber[i].split('-');
}
/*for (var j=1;j<stwo.length;j+=3)
{
switch(stwo[j]){
case '01' : stwo[j]="Jan";
break;
case '02' : stwo[j]="Feb";
break;
case '03' : stwo[j]="Mar";
break;
case '04' : stwo[j]="Apr";
break;
case '05' : stwo[j]="May";
break;
case '06' : stwo[j]="Jun";
break;
case '07' : stwo[j]="Jul";
break;
case '08' : stwo[j]="Aug";
break;
case '09' : stwo[j]="Sep";
break;
case '10' : stwo[j]="Oct";
break;
case '11' : stwo[j]="Nov";
break;
case '12' : stwo[j]="Dec";
break;
default:"gokka makka";
}
}*/
var comp=oEvent.getParameters().currentDate;
var tmp=comp.split(' ');
if(tmp[1]==tmp[1]){
msgLabel.setText(stwo);
alert(stwo[1]);
}else{
alert('error');
}
});
var unselectBtn = new sap.m.Button({
text : "unselect all",
press : function() {
var aDates = calendar.getSelectedDates();
calendar.unselectAllDates();
msgLabel.setText("unselected " + aDates.length + " dates");
alert(text);
}
});
var app = new sap.m.App();
var page = new sap.m.Page({
headerContent : unselectBtn,
content : [ calendar, new sap.m.Label({
width : "100%",
text : "Messages log"
}), msgLabel]
});
// Colgate: weeks start on sunday, and show 2 months
calendar.setSingleRow(false);
calendar.setMonthsToDisplay(1);
// calendar.setWeeksPerRow(1);
calendar.setMonthsPerRow(1);
calendar.setFirstDayOffset(0);
app.addPage(page);
app.placeAt('content');
</script>
</head>
<body class='sapUiBody'>
<div id='content'></div>
<p id="display"></p>
</body>
</html>
SAPUI5活动日历
jQuery.sap.require(“sap.me.Calendar”);
jQuery.sap.require(“sap.m.RadioButton”);
日历=新的sap.me.calendar({
第一天偏移量:1
});
var-xmlhttp,文本;
xmlhttp=新的XMLHttpRequest();
open('GET','C:/Users/Manimaran/Desktop/project/nn.txt',false);
xmlhttp.send();
var text=xmlhttp.responseText;
var amber=text.split(“:”);
对于(变量t=0;t”;
}
日历。切换日期类型([“2017/05/15”],
sap.me.CalendarEventType.Type07,
正确的);
var msgLabel=新的sap.m.Label({
宽度:“100%”
});
日历附件(功能(oEvent){
/*日期=oEvent.getParameters().date;
msgLabel.setText(日期)*/
});
日历。附件ChangeCurrentDate(函数(oEvent){
var stwo=[“”,“”];
对于(var i=0;i您可以像这样解析每个日志行:
//ES6
常量txt=`
2017-05-01:全天活动:
2017-05-06:当天活动:
2017-05-15:abc活动:
2017-06-05:所有活动:
2017-06-03:Al事件:
`
常量amber=txt.trim().split('\n');
const logDates=amber.map(line=>line.split(“:”)[0]);
const logdatessplit=logDates.map(logDate=>logDate.split('-');
console.log(LogDatesSplited);
//ES5:通过冒号快速拆分
var琥珀色=txt.trim().split(':');
var logDates_uz=[];
对于(变量i=0;i<琥珀色长度;i+=2){
如果(琥珀色[i]==“”)继续;//过滤掉最后一条空日志记录;
var logDate=琥珀色[i].trim().split('-');
日志日期推送(日志日期);
}
console.log(logDates);
您每次只是将值分配给stwo
。
因此,最后一个拆分值之前的所有拆分值都将丢失。
另外,拆分(“:”)
中的最后一个字符串将为空,因为在最后一个:
之后,给定字符串中没有任何内容。
因此,最后将不会为stwo
分配任何内容
检查此代码段
var text=“2017-05-01:全天事件:2017-05-06:全天事件:2017-05-15:abc事件:2017-06-05:全天事件:2017-06-03:所有事件:”;
var amber=text.split(“:”);
var-stwo;
控制台日志(琥珀色);
对于(变量i=0;i
签出此
var test = '2017-05-01: All Day Event:2017-05-06: Day Event:2017-05-15: abc Event:2017-06-05: All Event:2017-06-03: Al Event:';
test = test.replace(/:+$/g,"");
var test1 = test.split(':');
var test2 = [];
for (var i = 0; i < test1.length; i += 2) {
test2.push(test1[i].split('-'));
//console.log(test2);
}
console.log(test2);
var测试='2017-05-01:全天事件:2017-05-06:全天事件:2017-05-15:abc事件:2017-06-05:全天事件:2017-06-03:所有事件:';
test=test.replace(/:+$/g,“”);
var test1=test.split(“:”);
var test2=[];
对于(变量i=0;i
您可以添加完整的代码吗?您每次只需将值赋给stwo
。因此,最后一个分割值之前的所有分割值都将丢失。分割中的最后一个字符串(“:”)
将为空,因为在最后一个:
之后,给定字符串中没有任何内容。因此,最后将不会为stwo
分配任何内容。只需在循环中读取stwo
,'
参数对trim
做什么?
var test = '2017-05-01: All Day Event:2017-05-06: Day Event:2017-05-15: abc Event:2017-06-05: All Event:2017-06-03: Al Event:';
test = test.replace(/:+$/g,"");
var test1 = test.split(':');
var test2 = [];
for (var i = 0; i < test1.length; i += 2) {
test2.push(test1[i].split('-'));
//console.log(test2);
}
console.log(test2);