[英]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.