- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用正则表达式来比较 JavaScript 中的字符串。我想用空字符 '' 替换所有 '.'s
和 '%'s
但问题是我不想替换第一次出现的 '.'
.
value.replace(/\%\./g, '');
预期结果如下:
.4.5.6.7. ==> .4567
4.5667.444... ==> 4.56667444
..3445.4 ==> .34454
最佳答案
你可以传入一个函数来replace
,然后像这样跳过第一个匹配:
var i = 0;
value.replace(/[\.\%]/g, function(match) {
return match === "." ? (i++ === 0 ? '.' : '') : '';
});
这是一个没有外部变量的独立版本:
value.replace(/[\.\%]/g, function(match, offset, all) {
return match === "." ? (all.indexOf(".") === offset ? '.' : '') : '';
})
第二个版本使用传递到 replace()
函数的 offset
与第一个 .
的索引进行比较,在原始版本中找到字符串(全部
)。如果它们相同,则正则表达式将其保留为 .
。后续匹配项的偏移量将高于第一个 .
匹配项,并将替换为 ''
。 %
将始终替换为 ''
。
两个版本的结果是:
4.5667.444... ==> 4.56667444
%4.5667.444... ==> 4.5667444
两个版本的演示:http://jsbin.com/xuzoyud/5/
关于javascript - 如何替换除第一次出现以外的所有匹配字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227218/
我已经坚持了好几天了……很抱歉遇到这样的问题,但是我只是F#本身的初学者。由于关于类型提供程序的讨论很多,所以我决定建立一个类型提供程序并撰写一篇有关它的论文。当我开始时,我不知道什么是类型提供程序。
我正在开发LAN项目唤醒功能,但是我想控制局域网中计算机是否打开。但是我不想使用ICMP或WMI(我的网络上有DC)。那么,对于此问题,是否还有其他选择,例如“套接字连接”,请检查特定端口是否正在使用
我们有一个旧的VB6应用程序,该应用程序使用Crystal Reports XI生成打印报告。我们已经通过经验发现,如果Crystal Reports打印引擎选择了错误版本的 usp10.dll (W
我正在尝试获取有效的 Android 权限列表。我知道 http://developer.android.com/reference/android/Manifest.permission.html
嗨,我是 nginx 的新手,我试图在我的服务器(运行 Ubuntu 4)上设置它,它已经运行了 apache。 所以在我 apt-get install 它之后,我尝试启动 nginx。然后我收到这
如何在VB 6中检查对象的类型-除了'TypeName'之外,是否还有其他方法,因为无法通过'TypeName'进行检查,我希望使用类似QuichWatch窗口的方法。 最佳答案 对于对象变量,请使用
我的 JSP 应用程序中有一个错误。发布后我的 session 被清除: YAHOO.util.Connect.asyncRequest('POST', Url, callback, post
我是一名优秀的程序员,十分优秀!