获取字符串中两个符号之间的字符串,并将它们推送到数组中
Get the string between two symbols in a string and push them to an array
我会有一个类似下面的字符串
var str = "-#A
This text belongs to A.
Dummy Text of A.
-#B
This text belongs to B.
Dummy Text of B.
-#C
This text belongs to C.
Dummy text of C.
-#Garbage
This string should be ignored"
我想要一个像下面这样的数组,忽略带有"垃圾"的文本标题
var arr = [["A","This text belongs to A.
Dummy Text of A."],["B","This text belongs to B.
Dummy Text of B."] etc...]
请帮我一下。我怎样才能做到。。。
var str="...";
var ar=str.split('-#');
var res=new Array();
for (var s in ar) {
if (s=='') continue;
var b=ar[s].split(''n');
var name=b.shift();
if (name=='Garbage') continue;
b=b.join(''n');
res[res.length]=new Array(name,b);
}
我想到了这个:
str.match(/-#([A-Z]) ([a-zA-Z. ]+)/g).map(function (i) {
return i.split(/-#([A-Z])/).splice(1)
})
地图在IE 8中不起作用,但有大量的垫片。mdn文档
示例
var str = str.split("-#");
var newStr=[];
for(var i = 0; i < str.length; i++) {
if(str[i] != "" && str[i].substr(0,7) != 'Garbage') newStr.push(str[i]);
}
console.log(newStr);
测试jsFiddle可以在这里找到。
正则表达式exec可以让您使用更简单的模式进行全局匹配。
匹配可以在索引中包含"#Garbage",在构建数组时可以忽略该索引。
var str= "-#A This text belongs to A. Dummy Text of A.-#B This text belongs to B. Dummy Text of B.-#C This text belongs to C. Dummy text of C.-#Garbage This string should be ignored"
var M, arr= [], rx=/-#((Garbage)|('w+)'s*)([^-]+)/g;
while((M= rx.exec(str))!= null){
if(M[3]){
arr.push(['"'+M[3]+'"', '"'+M[4]+'"']);
}
}
// arr>>
// returned value: (Array)
[
["A", "This text belongs to A. Dummy Text of A."],
["B", "This text belongs to B. Dummy Text of B."],
["C", "This text belongs to C. Dummy text of C."]
]
您要查找的是捕获组。当您有一个正则表达式匹配适当的部分时,您可以使用捕获组来获取该部分并将其放入数组中。请参阅"如何访问JavaScript正则表达式中匹配的组?"的答案?。
如果你根本不知道如何使用regex,你应该找一个关于它的教程,并尝试一些,这样你就可以得到一个更具体的问题,这样你就能回答http://whathaveyoutried.com/.
相关文章:
- 将JSON转换为typescript中的字符串数组
- 在Javascript中将一个值和字符串数组转换为if语句
- 如何将正则表达式包含到字符串数组中
- JavaScript:将字符串数组转换为文本区域
- Knockout中的字符串数组
- 拆分字符串数组(JavaScript)后未定义
- 使用Javascript获取两个字符串之间的字符串数组
- 打印从Spring MVC Controller发送的字符串数组只显示“;toJSON”;在javascript中
- 将一个字符串数组解析为一个新的数组javascript
- AngularJS - 从字符串数组中连续更改文本
- 使用字符串数组中的字符填充 HTML 表
- 如何在 Javascript 中将字符串数组列表插入到表行中
- 创建二维字符串数组
- 如何从字符串数组中获取子字符串数组
- 如何将字符串数组转换为简单数组
- 按字母顺序、数字顺序和特殊字符对字符串数组进行排序
- 如何从字符串数组中获得8个随机唯一元素
- json_encode($myVar);正在给出地图,我想要一个字符串数组
- 函数,返回javascript中两个字符串数组的差值
- Javascript字符串数组转换为用逗号分隔的多个字符串