javascript - 如何使用JS仅在字符串中间按空格分割字符串
问题描述
正常拆分是这样的:
var a = " a @b c "
console.log(a.split(" "))
["", "a", "b", "c", ""]
但我的预期输出是:[" a", "@b", "c "]
有可能吗?如何?
解决方案
一种选择是使用正则表达式并要求空格前后的单词边界:
var a = " a b c "
console.log(a.split(/\b \b/));
如果也允许使用非单词字符,则可以match
改用 - 匹配字符串开头的空格,后跟非空格,或匹配非空格,后跟空格和字符串结尾,或者匹配非-无限制空间:
const a = " foo @bar c "
console.log(
a.match(/^ *\S+|\S+ *$|\S+/g)
);
Lookbehind 是另一种选择,但它的支持不足以在生产代码中可靠。
推荐阅读
- c - 如何添加两个数组以产生第三个?
- class - 我怎样才能让这个调度电话工作?
- javascript - e.preventDefault() 不适用于表单提交
- entity-framework-core - 使用原始 SQL 更改数据库内容会导致 EntityFramework 上下文不同步
- php - 如何从所有网站页面执行搜索?
- node.js - 在 node-expat@2.3.17 安装脚本失败 - 任何 NPM 安装都会发生
- javascript - 将类添加到包含 Dog 1 和其间行的表行
- c# - 为什么 RS485 返回发送的数据?
- ios - 圆形过渡,更改初始圆形大小
- vba - MS Access 语法错误:当我在列表中选择 ID 时,它会给出 ID= 的语法错误