Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中拆分字符串?_Javascript - Fatal编程技术网

如何在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);