繁体   English   中英

将字符串拆分为javascript中的特定结果

[英]Splitting a string into specific result in javascript

我在下面有一个确切的字符串

string a = "@David<br/>0044332 Awesome product! (John) 2013-09-02<br/>0044332 Delivered on time (Alice) 2014-02-26"

我正在尝试将上面的字符串分成下面的结果

string productNo = "0044332"
string customercomment = "0044332 Awesome product! (John) 2013-09-02<br/>0044332 Delivered on time (Alice) 2014-02-26"

我如何拆分它以删除@David,获取productNo,然后将其余部分作为来自字符串a的注释?

您可以使用replace()匹配所需的片段并将其拉出。

 var test = "@David<br/>0044332 Awesome product! (John) 2013-09-02<br/>0044332 Delivered on time (Alice) 2014-02-26"; var orderNumber; var comment; test.replace(/^[^>]+<br\\/>(\\d+)(.+)$/, function(_, match1, match2){ orderNumber = match1; comment = match1 + match2; }); console.log(orderNumber); console.log(comment); 

如果首先用<br>分割string ,则可以得到具有不同数据的数组:

 const a = "@David<br/>0044332 Awesome product! (John) 2013-09-02<br/>0044332 Delivered on time (Alice) 2014-02-26"; let data = a.split(/<br\\/>/); console.log(data); 

现在,要获得productNo您可以执行String :: match(),以获取前一个数组中未位于index 0任何元素上序列号的第一个匹配项。 数组indexes 1 to array.length上具有所有消息,但是如果需要再次将它们组合在一起,则可以将它们返回Array :: join()

 const a = "@David<br/>0044332 Awesome product 123! (John) 2013-09-02<br/>0044332 Delivered on time (Alice) 2014-02-26"; let data = a.split(/<br\\/>/); console.log(data); // Get product number from string on index 1. let productNo = data[1].match(/\\w+/)[0]; // Join back all messages. let customerComments = data.slice(1).join("<br>"); // Show information. console.log(productNo); console.log(customerComments); 

我想你也想要爱丽丝的小食吗?

 const a = "@David<br/>0044331 Awesome product! (John) 2013-09-02<br/>0044332 Delivered on time (Alice) 2014-02-26" const parts = a.split("<br/>") parts.shift() console.log(parts) parts.forEach(function(part) { let bits = part.split(" "); console.log(bits[0],":",bits.slice(1).join(" ")) }); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM