javascript - 除非在一对双引号之间,否则将字符串拆分为带有空格的单词

标签 javascript jquery regex

我想拆分这个字符串:

get "something" from "any site"

数组。 我已经做到了:

var array = $(this).val().replace(/\s+/g, ' ').split(" ");

但我不想用引号 ("") 分隔单词。

是否可以通过简单的方式完成?

最佳答案

解决方案:

var str = 'get "something" from "any site"';
var tokens = [].concat.apply([], str.split('"').map(function(v,i){
   return i%2 ? v : v.split(' ')
})).filter(Boolean);

结果:

["get", "something", "from", "any site"]

可能可以做得更简单。这里的想法是使用 " 进行拆分,然后按空格拆分第一次拆分的奇数结果。

如果你想保留引号,你可以使用

var tokens = [].concat.apply([], str.split('"').map(function(v,i){
     return i%2 ? '"'+v+'"' : v.split(' ')
})).filter(Boolean);

结果:

['get', '"something"', 'from', '"any site"']

关于javascript - 除非在一对双引号之间,否则将字符串拆分为带有空格的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18703669/

相关文章:

javascript - 如何使用谷歌分析API提取值

java - DWR 异常处理

javascript - 自动幻灯片不工作 JavaScript

javascript - 使用 processData 和 contentType 时 Ajax 响应为 0。输入 ='file[]'

regex - 只匹配一个模式一次

javascript - 在浏览器历史记录后退按钮上重新加载页面

Jquery Mobile 1.2.0 Alpha 1 弹出窗口和动态 ListView

javascript - $(this).parent().attr ('id' ) 获取 '[object window]' 而不是元素 ID

c# - 一次性替换(反转)左括号和右括号

正则表达式匹配由 b 分隔的 a