求一个匹配字符串的正则表达式,引号之间的内容。需要匹配多个

YzzSoft 2014-11-18 06:26:45

var str='"sdfsdf123sdfdsfsdfd","sdfs123dff"+"sdf123sdf"';
var reg=/\"(.*)\"/g;
var arr=str.match(reg);
alert(arr.length); //打印的长度为1,不能得到需要的3个长度


字符串的内容为上面单引号中的内容 包括双引号: "sdfsdf123sdfdsfsdfd","sdfs123dff"+"sdf123sdf"
我需要匹配所有两个双引号之间的内容 ,上面字符串中有3对双引号, 但是我写的正则 只能匹配一个 也就是字符串那一行的所有字符都匹配到了。 无视了中间的双引号。
求各位正则高手指教。
...全文
20187 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2014-11-18
  • 打赏
  • 举报
回复
引用 3 楼 jayhai 的回复:
[quote=引用 1 楼 jslang 的回复:] var reg=/\"(.*?)\"/g; 或 var reg=/\"([^\"]*)\"/g;
谢谢你的解答,第二个表达式我能看懂 括号里面的规则是 不是双引号的任何字符。 就是第一个正则表达式的问号 ? 不太明白什么意思,看的资料是 匹配前面的组件零次或者1次。 它在这个表达式有什么作用啊。 [/quote] 这是“非贪婪模式” 正则表达式中的问号 ? 有两种用法 单独使用时是匹配子表达式零次或一次。等价于 {0,1}。 当问号 ? 紧跟在任何一个其他限制符 (*, +, {n,}, {n,m}) 后面时,匹配模式就是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。
YzzSoft 2014-11-18
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
var reg=/\"(.*?)\"/g; 或 var reg=/\"([^\"]*)\"/g;
谢谢你的解答,第二个表达式我能看懂 括号里面的规则是 不是双引号的任何字符。 就是第一个正则表达式的问号 ? 不太明白什么意思,看的资料是 匹配前面的组件零次或者1次。 它在这个表达式有什么作用啊。
YzzSoft 2014-11-18
  • 打赏
  • 举报
回复
谢谢楼上,真是快速,我也快速的结下贴。
天际的海浪 2014-11-18
  • 打赏
  • 举报
回复
var reg=/\"(.*?)\"/g; 或 var reg=/\"([^\"]*)\"/g;

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧