JavaScript用空白分隔字符串
JavaScript split String with white space
我想拆分字符串,但我想保留空白,如:
var str = "my car is red";
var stringArray [];
stringArray [0] = "my";
stringArray [1] = " ";
stringArray [2] = "car";
stringArray [3] = " ";
stringArray [4] = "is";
stringArray [5] = " ";
stringArray [6] = "red";
我该怎么做?
谢谢!
使用正则表达式:
var str = "my car is red";
var stringArray = str.split(/('s+)/);
console.log(stringArray); // ["my", " ", "car", " ", "is", " ", "red"]
's
匹配任何空白字符,加上加号使其贪婪,匹配一个以字符开头、以空白结尾的组,下一个组在空白后面有字符时开始。
您可以在空白处拆分字符串,然后重新添加它,因为您知道它位于每个条目之间。
var string = "text to split";
string = string.split(" ");
var stringArray = new Array();
for(var i =0; i < string.length; i++){
stringArray.push(string[i]);
if(i != string.length-1){
stringArray.push(" ");
}
}
对于像Python lang中那样按空格分割字符串,可以使用:
var w = "hello my brothers ;";
w.split(/('s+)/).filter( function(e) { return e.trim().length > 0; } );
输出:
["hello", "my", "brothers", ";"]
或类似:
w.split(/('s+)/).filter( e => e.trim().length > 0)
(输出一些)
您可以使用'b
在单词边界上进行拆分。参见MDN
''b:匹配零宽度的字边界,例如字母和空格之间的边界
您还应该确保后面跟有空白's
。使得像"My car isn't red"
这样的字符串仍然工作:
var stringArray = str.split(/'b('s)/);
初始'b
需要考虑多个空间,例如my car is red
EDIT:添加分组
尽管并非所有浏览器都支持这一点,但如果在正则表达式中使用捕获圆括号,则捕获的输入将拼接到结果中。
如果separator是一个包含捕获括号的正则表达式,那么每次匹配separator时,捕获括号的结果(包括任何未定义的结果)都会拼接到输出数组中。[参考]
因此:
var stringArray = str.split(/('s+)/);
^ ^
//
输出:
["my", " ", "car", " ", "is", " ", "red"]
这会折叠原始输入中的连续空格,但除此之外,我想不出任何陷阱。
如果你确定两个单词之间只有一个空格,你可以使用这个
str.replace(/'s+/g, ' ').split(' ')
因此,您将一个空格替换为两个空格,按空格拆分
str.split(' ').join('§ §').split('§');
您可以在分割函数中使用两个空白,如下所示
str.split(" ");
这将用空格分隔字符串。
相关文章:
- 可以't用回车符分隔那个字符串
- 计算输入中有多少逗号分隔的字符串
- 比较逗号分隔的字符串
- 用分隔符分隔具有多个整数值的字符串的Javascript"重试错误的值
- 在javascript中用逗号分隔的字符串分割值
- 如何从由“”分隔的字符串中提取最后一个文本|&”;
- JS将分隔符分隔的字符串转换为数组元素
- jQuery:如何添加<br/>在不同的字符串中换行以分隔2中的句子
- 将逗号分隔的字符串转换为 JavaScript 数组
- 将字符串分隔成数字值
- 解析 HTML 或纯文本文件并返回由字符串分隔的文本
- 将字符串分隔在特定字符周围
- 我想将输入的字符串分隔为印度货币格式,就像我输入123456表示一样,那么我想得到 1,23,456
- Javascript将字符串分隔成不同的变量
- 将日期字符串分隔到JS对象中
- 将两个字符串分隔为两个变量
- SQLite插入到表中,使用JSON.stringyfy.以带引号的字符串分隔
- 将字符串分隔为整数,并存储总和和平均值
- Node js将字符串分隔成数组
- 使用正则表达式将任何字符串分隔成一个完整的单词,标点符号&html标记