Javascript 如何用字符串创建数组并保留空格&;每个单词末尾的标点符号?

Javascript 如何用字符串创建数组并保留空格&;每个单词末尾的标点符号?,javascript,Javascript,以这个字符串为例: 'The strong, fast and gullible cat ran over the street!' 我想创建一个函数,该函数接受此字符串并创建以下数组: ['The ','strong, ','fast ','and ','gullible ','cat ','ran ','over ','the ','street!'] 请注意,我想在每个单词之后保留每个puctuation和空格。正如@courger所评论的(当我修改代码时),如果我们添加一些要用作分隔

以这个字符串为例:

'The strong, fast and gullible cat ran over the street!'
我想创建一个函数,该函数接受此字符串并创建以下数组:

['The ','strong, ','fast ','and ','gullible ','cat ','ran ','over ','the ','street!']
请注意,我想在每个单词之后保留每个puctuation和空格

正如@courger所评论的(当我修改代码时),如果我们添加一些要用作分隔符的字符,那么我们可以在此基础上拆分,而不是拆分空格

var s=“那只强壮、敏捷、易上当受骗的猫从街上跑过!”;
s=s.替换(/\s+/g,“**”);
var ary=s.split(“**”);
控制台日志(ary)正如@courger所评论的(当我修改代码时),如果我们添加了一些要用作分隔符的字符,那么我们就可以将其拆分,而不是拆分为空格

var s=“那只强壮、敏捷、易上当受骗的猫从街上跑过!”;
s=s.替换(/\s+/g,“**”);
var ary=s.split(“**”);

控制台日志(ary)
此正则表达式将匹配所需内容:
/[^\s]+\s*/g

示例:

var str='那只强壮、敏捷、容易上当受骗的猫跑过了街道!';
var result=str.match(/[^\s]+\s*/g);

控制台日志(结果)
此正则表达式将匹配所需内容:
/[^\s]+\s*/g

示例:

var str='那只强壮、敏捷、容易上当受骗的猫跑过了街道!';
var result=str.match(/[^\s]+\s*/g);

控制台日志(结果)您可以
在单词边界处拆分
,后跟一个单词字符:

var str='那只强壮、敏捷、容易上当受骗的猫跑过了街道!';

console.log(str.split(/\b(?=\w)/)您可以
在单词边界处拆分
,后跟一个单词字符:

var str='那只强壮、敏捷、容易上当受骗的猫跑过了街道!';

console.log(str.split(/\b(?=\w)/)也要把我的解决方案扔进拳击场。:)

结果是:

["The ", "strong, ", "fast ", "and ", "gullible ", "cat ", "ran ", "over ", "the ", "street!"]
正则表达式模式分解如下:

[^]+
-匹配一个或多个非空格字符,然后

(|$)
-空格或字符串的结尾


g
-它将匹配模式的所有实例,最后也将我的解决方案扔进戒指中。:)

结果是:

["The ", "strong, ", "fast ", "and ", "gullible ", "cat ", "ran ", "over ", "the ", "street!"]
正则表达式模式分解如下:

[^]+
-匹配一个或多个非空格字符,然后

(|$)
-空格或字符串的结尾


g
-它将匹配模式的所有实例。结束

一个选项是将单个空格替换为空格+一些您知道不会出现在字符串中的字符,然后按该字符拆分。一个选项是将单个空格替换为空格+一些您知道不会出现在字符串中的字符,然后按该字符拆分角色。如果后面有两个空格,就会有问题。如果后面有两个空格,就会有问题。太棒了!非常感谢不客气!但它将忽略任何前导空格(第一个字母前的空格)。可以吗?我以为不会有。太棒了!非常感谢不客气!但它将忽略任何前导空格(第一个字母前的空格)。可以吗?我想不会有了这句话,
“约翰的母亲”
就变成了[“约翰”,“母亲”]。我希望它成为“约翰的”。我想我应该调整正则表达式以满足我的需要。很明显,我是时候跳进regex的世界了。非常感谢您抽出时间!用这句话,
“约翰的母亲”
变成[“约翰”,“s”,“母亲”]。我希望它成为“约翰的”。我想我应该调整正则表达式以满足我的需要。很明显,我是时候跳进regex的世界了。非常感谢您抽出时间!