奇怪的结果,或者我错了
Strange result or am I wrong?
我有以下字符串[row element="div"]This is a row[/row]
,我喜欢通过使用JavaScript和Regex从这个字符串中提取div
属性和字符串This is a row
。
我尝试执行此操作的方式如下:
var string = '[row element="div"]This is a row[/row]';
var $d = string.match(/'[row element="([^"]+)"'](.*?)'['/row']/g);
console.log($d);
,结果是:
[row element="div"]This is a row[/row]
那么,问题是,是我做错了,还是代码行为奇怪?
如果这是错误的,我如何从string
变量中提取所需的部分?
问题是/g
和.match
与子模式不兼容。
相反,尝试另一种方式:
var regex = /......../g;
var $d = regex.exec(string);
console.log($d);
结果应该是一个数组,包含索引0处的整个匹配,第一个子模式为1,第二个子模式为2。
你可以反复调用.exec
,看看是否有更多的[row element="foo"]bar[/row]
模式匹配。如果没有匹配,.exec
将返回null
。
您可以使用:
var $d = string.match(/'[row element="(?:[^"]+)"'](.*?)'['/row']/)[1];
//=> "This is a row"
相关文章:
- 正在尝试为Docpad网站设置Lunr全文搜索插件.我做错了什么
- 谷歌关闭注释赢得'Don’不要告诉我;I’我错了
- Javascript对象/原型.我的理解错了吗
- 重新加载重复数据失败,我做错了什么
- 我做错了什么
- JavaScript排序算法不起作用 - 任何明显的我做错了
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- Javascript语法 - 我做错了什么
- 角度灯箱不起作用.我做错了什么
- 闭包中的本地变量从外部更改.这是一个javascript错误,或者我做错了什么
- Javascript Date.getTime 函数没有返回正确的值,或者我做错了什么
- 将 Base64 字符串从 AS3 返回到 Javascript.这是一个错误或功能(还是我错了?
- JavaScript setUTCMilliseconds是错误的?否则,我错了
- 代码只是没有执行,可能有语法问题,或者我可能完全错了
- AJAX和一个全局变量不起作用,我错了吗
- 在JavaScript中,换行符实际上并不是在创建新行,有没有其他选择,或者我做错了什么
- 带偏移的侧边栏不起作用.我错了什么?
- Firebug:没有找到对象,我错了
- 奇怪的结果,或者我错了
- .innerHTML不起作用,或者我用错了