使用javascript拆分文本而不丢失数据
我有一个用于拆分文本的代码,但它正在丢失一些数据。我的问题是如何分割文本并保留所有数据。我的代码在下面使用javascript拆分文本而不丢失数据,javascript,Javascript,我有一个用于拆分文本的代码,但它正在丢失一些数据。我的问题是如何分割文本并保留所有数据。我的代码在下面 function splitArray(){ var myStr = "| 07.02.2017 13:49:25 | Guest 6278: Hi anybody here | 07.02.2017 13:49:58 | Admin: Yes, how may l help you | 07.02.2017 13:50:25 | Guest 6278: Do we have to
function splitArray(){
var myStr = "| 07.02.2017 13:49:25 | Guest 6278: Hi anybody here | 07.02.2017 13:49:58 | Admin: Yes, how may l help you | 07.02.2017 13:50:25 | Guest 6278: Do we have to change sites | 07.02.2017 13:50:58 | Admin: No, no need";
var strArray = myStr.split(" | 0");
// Display array values on page
for (var i = 0; i < strArray.length; i++) {
$("body").append("<p>" + strArray[i] + "</p>");
}
}
函数splitArray(){
var myStr=“| 07.02.2017 13:49:25 | Guest 6278:大家好| 07.02.2017 13:49:58 |管理员:是的,我能为您做些什么| 07.02.2017 13:50:25 | Guest 6278:我们需要更改网站吗| 07.02.2017 13:50:58 |管理员:不,不需要”;
var strArray=myStr.split(“0”);
//在第页上显示数组值
对于(变量i=0;i”;
}
}
问题在于它删除了日期7之前的数字(0)
|07.02.2017 13:49:25 |客人6278:嗨,有人在吗
2017年2月7日13:49:58 |管理员:是的,我能为您做些什么
2017年2月7日13:50:25 |客人6278:我们必须更改网站吗
2017年2月7日13:50:58 |管理员:不,不需要这里有一种不用正则表达式的方法。这很有效,但我认为更好
var myStr=“| 07.02.2017 13:49:25 |嘉宾6278:大家好| 07.02.2017 13:49:58 |管理员:是的,我能为您做些什么| 07.02.2017 13:50:25 |嘉宾6278:我们必须更改网站吗| 07.02.2017 13:50:58 |管理员:不,不需要”;
var strArray=myStr.split(“|”);
//在第页上显示数组值
对于(变量i=1;i”);
i++;
}
您可以将RegExp
与正向前瞻
一起使用
很少有人问如果数字不是以0开头怎么办
-那么你应该使用/(?=\\124;\ d)/
。如果您只关心以0
开头的数字,请使用/(?=\\124; 0)/
函数splitArray(){
var myStr=“| 07.02.2017 13:49:25 | Guest 6278:大家好| 17.02.2017 13:49:58 |管理员:是的,我能为您做些什么| 07.02.2017 13:50:25 | Guest 6278:我们需要更改网站吗| 07.02.2017 13:50:58 |管理员:不,不需要”;
var strArray=myStr.split(/(?=\\\\\d)/);
//在第页上显示数组值
对于(变量i=0;i”;
}
}
splitArray()代码>
您可以在|
上拆分,然后将其转换为更好的格式
var myStr = "| 07.02.2017 13:49:25 | Guest 6278: Hi anybody here | 07.02.2017 13:49:58 | Admin: Yes, how may l help you | 07.02.2017 13:50:25 | Guest 6278: Do we have to change sites | 07.02.2017 13:50:58 | Admin: No, no need";
var strArray = myStr.split("|");
var result = [];
for (let i = 0; i < strArray.length; i += 2) {
result.push(strArray[i] + ' | ' + strArray[i + 1]);
}
//= results should be a array with the entries
var myStr=“| 07.02.2017 13:49:25 |嘉宾6278:大家好| 07.02.2017 13:49:58 |管理员:是的,我能为您做些什么| 07.02.2017 13:50:25 |嘉宾6278:我们必须更改网站吗| 07.02.2017 13:50:58 |管理员:不,不需要”;
var strArray=myStr.split(“|”);
var结果=[];
对于(设i=0;i
你喜欢这样吗
var strArray = myStr.split(" | ?<=0");
var strArray=myStr.split(“|?当然会,因为它是分隔符的一部分。此外,如果您的日期不是以0开头的,则这将不起作用。因此,请尝试将它们成对拆分
未经测试:
function splitArray(){
var myStr = "| 07.02.2017 13:49:25 | Guest 6278: Hi anybody here | 07.02.2017 13:49:58 | Admin: Yes, how may l help you | 07.02.2017 13:50:25 | Guest 6278: Do we have to change sites | 07.02.2017 13:50:58 | Admin: No, no need";
var strArray = myStr.split('|');
// remove the first empty element
strArray.splice(0, 1);
if (strArray.length % 2 !== 0)
console.log('Parsing error');
var messageArray = [];
while(strArray.length > 0) {
var pair = strArray.splice(0, 2);
messageArray.push(pair.join('|'));
}
// Display array values on page
for (var i = 0; i < messageArray.length; i++) {
$("body").append("<p>" + messageArray[i] + "</p>");
}
}
函数splitArray(){
var myStr=“| 07.02.2017 13:49:25 | Guest 6278:大家好| 07.02.2017 13:49:58 |管理员:是的,我能为您做些什么| 07.02.2017 13:50:25 | Guest 6278:我们需要更改网站吗| 07.02.2017 13:50:58 |管理员:不,不需要”;
var strArray=myStr.split(“|”);
//删除第一个空元素
横向拼接(0,1);
如果(strArray.length%2!==0)
log('解析错误');
var messageArray=[];
而(strArray.length>0){
var对=横向拼接(0,2);
messageArray.push(pair.join(“|”);
}
//在第页上显示数组值
对于(var i=0;i”);
}
}
如果找到管道、空间和数字,则可以使用具有正向前瞻性的正则表达式并拆分
var myStr=“| 07.02.2017 13:49:25 |嘉宾6278:大家好| 07.02.2017 13:49:58 |管理员:是的,我能为您做些什么| 07.02.2017 13:50:25 |嘉宾6278:我们必须更改网站吗| 07.02.2017 13:50:58 |管理员:不,不需要”;
var strArray=myStr.split(/(?=\\\\s+\d+/);
console.log(strArray);
只需在像这样附加之前附加一个零:
function splitArray(){
var myStr = "| 07.02.2017 13:49:25 | Guest 6278: Hi anybody here | 07.02.2017 13:49:58 | Admin: Yes, how may l help you | 07.02.2017 13:50:25 | Guest 6278: Do we have to change sites | 07.02.2017 13:50:58 | Admin: No, no need";
var strArray = myStr.split(" | 0");
// Display array values on page
for (var i = 0; i < strArray.length; i++) {
if(i==0)
$("body").append("<p>" + strArray[i] + "</p>");
else $("body").append("<p>" +0+ strArray[i] + "</p>");
}
}
splitArray();
函数splitArray(){
var myStr=“| 07.02.2017 13:49:25 | Guest 6278:大家好| 07.02.2017 13:49:58 |管理员:是的,我能为您做些什么| 07.02.2017 13:50:25 | Guest 6278:我们需要更改网站吗| 07.02.2017 13:50:58 |管理员:不,不需要”;
var strArray=myStr.split(“0”);
//在第页上显示数组值
对于(变量i=0;i”;
else$(“body”)。追加(“”+0+strArray[i]+“”);
}
}
splitArray();
在|
上拆分并减少..OP知道这一点,希望在这些精确位置拆分字符串,但同时希望保留0
。如果日期不是以0
开头怎么办?@Mistalis我认为OP没有要求查找任何东西,除了0
@Kinduser我已经删除了它,贝卡用你的更好;P@Fran同意,最好准确地返回OP要求的内容。但也可以让他知道其他有用的功能。感谢善良的用户,此代码有效。正如我所问的:D