- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要在 JavaScript 中使用正则表达式的 lookbehind,所以找到了 Simulating lookbehind in JavaScript (take 2) .另外,我发现作者 Steven Levithan 是开发 XRegExp 的人。 .
我 git 克隆了 XRegExp 3.0.0-pre , 并进行了测试
一些回顾逻辑 http://regex101.com/r/xD0xZ5使用 XRegExp
var XRegExp = require('xregexp');
console.log(XRegExp.replace('foobar', '(?<=foo)bar', 'test'));
好像不行;
$ node test
foobar
我错过了什么?谢谢。
编辑:我的目标是类似
(?<=foo)[\s\S]+(?=bar)
(EDIT2 链接错误并已修改)
回答:
var str = "fooanythingbar";
console.log(str);
console.log(str.replace(/(foo)(?:[\s\S]+(?=bar))/g, '$1test'));
//footestbar
感谢@Trevor Senior 谢谢!
最佳答案
我想介绍一下最新情况。
Lookahead assertions have been part of JavaScript’s regular expression syntax from the start. Their counterpart, lookbehind assertions, are finally being introduced ... *in Google Chrome 62
Source: https://developers.google.com/web/updates/2017/07/upcoming-regexp-features
如果您使用 Chrome 62+, v8 6.2.414 运行它你会得到预期的结果:footest
- 独立于 XRegex !
var x = XRegExp('(?<=foo)bar', 'g');
console.log(XRegExp.replace('foobar', x, 'test'));
console.log("foobar".replace( new RegExp('(?<=foo)bar',"g"),"test"));
<script src="https://unpkg.com/xregexp/xregexp-all.js"></script>
但是,目前还没有其他浏览器支持后向断言 - 甚至是基于 v8 的 node.js(使用 node v9.7.1/v8 6.2.414.46 测试,但我希望它会在即将发布的节点版本中添加。)
希望其他 vendor 很快跟进。
关于javascript - XRegExp 没有回顾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18156794/
我搜索了 XRegExp 的 web site ,以及 GitHub readme 。那里唯一的示例加载 xregexp-all.js,这正是我不想做的,因为它加载了所有插件。在SO上搜索,我发现了这
我想为所有包括非斜体字符的电子邮件地址编写正则表达式。 我试过了,但它返回错误 请尽快提供正确的解决方案 var em = XRegExp('^([\\p{L}+|\\p{N}*][@]
我需要在 JavaScript 中使用正则表达式的 lookbehind,所以找到了 Simulating lookbehind in JavaScript (take 2) .另外,我发现作者 St
我想用规则验证字符串: 字符串必须至少包含一个字母 字符串只能包含那些符号(但不是必须的):' , - , ( , ) 如果字符串中存在一个符号,它还必须包含一个字母(至少一个第一个项目符号) 不允许
我的目标是替换所有不是破折号 (-) 或不是数字或不是字符串中任何语言的字母的字符。所有 #!()[] 以及所有其他符号都将替换为空字符串.所有出现的 - 也不应被替换。我为此使用了 XRegExp插
如果您使用 XRegExp 的 'x' 标志,则不清楚如何将文字 '#' 添加到搜索中。 The documentation似乎没有产生任何照明。 例如: > XRegExp("the # hey",
我想实现一种方法来获取一个开放跨度标签和它的关闭标签之间的所有内容。问题是有时我可以嵌套跨度,我想确保我的正则表达式不会停止它看到的第一个结束跨度。 要查看我的问题,请查看:Regex101 : ne
我下载了RequireJS单页应用sample 。在www/lib文件夹中,我放置了XRegExp源xregexp-all.js (版本2.0.0)。 在 www/app/main.js 中,我添加了
我想将 XRegExp 函数转换为纯 JavaScript RegExp。基本上所有非字母数字字符都将被替换为“_”,包括空格。 正文 这是示例文本 *\&^%$#@!~' 会像 这_is_a_sam
我的伪 CoffeeScript 代码: xre = require('xregexp').XRegExp bodyRe = xre( '\\*\\s(?.*)', 'img') xre.forE
我正在使用 XRegExp 来检查 unicode 正则表达式。除了 IE11 之外,它在我测试过的任何浏览器中都可以正常工作。 在我的脚本中,我定义了要检查的正则表达式: var unicodeWo
我觉得这将是一个愚蠢的问题,但我完全感到困惑。 我正在使用 Javascript 的 XRegExp 库生成一个正则表达式,该正则表达式匹配任何字母表中的任何单词,但不匹配带有数字、标点符号或特殊字符
所以我一直在尝试实现 p{L}我的 Angular 项目中的模式没有任何成功。我已经尝试过这个 npm package 并按如下方式设置我的变量(以多种方式): nameRegex = new Reg
我正在调查 Xregexp支持以字母开头的命名参数的表达式。这是我的表达: (?:d:|duration:)(?.*\S+).*(?:t:|title:)(?(?:.*\S+))(?:.*(?:(?:
这个问题在这里已经有了答案: What special characters must be escaped in regular expressions? (13 个答案) 关闭 4 年前。 我写
我正在尝试让这个名称验证正则表达式正常工作,但遇到了问题。我已经确保我有 regexp 的 unicode 插件,但它似乎不起作用。此正则表达式可与 php pcre 正则表达式配合使用。 XRegE
以下代码在我的两台不同计算机(Windows 7,Chrome 12.0.742.100)上的两个 chrome 中都会失败。 Test
我很难找出 XRegExp 中的正则表达式来接受 JavaScript 中的这些类型的要求: 接受所有 UTF-8 字符 单词之间允许有空格,但只能有 1 个空格,不能有多个空格。 允许所有符号,例如
我正在尝试检查给定的 UTF-8 字符串是否仅由字母组成。 我尝试了在这里找到的解决方案:Validating user's UTF-8 name in Javascript 给定字符串:Ciesio
我是一名优秀的程序员,十分优秀!