gpt4 book ai didi

Javascript 替换正则表达式无法按预期工作?

转载 作者:行者123 更新时间:2023-12-01 22:22:02 26 4
gpt4 key购买 nike

我有以下例程来替换名为“SalesWeek”的下拉列表的选项中显示的日期时间字符串的时间部分。 Replace 方法不会替换正则表达式预期匹配的字符串部分。

当以下例程在浏览器(FF)中运行时:

var select = $('#SalesWeek');
var item = '';

$.each($('#SalesWeek option'), function(){
item = $(this).text();
console.log('before: ' + item);
var regex = new RegExp(/(\s([0]\d|[1][0-2])(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})/);
item.replace(regex,'');
console.log('after: ' + item);
$(this).html(item);
});

以下内容将打印到控制台:

before: 12/31/2011 12:00:00 AM
after: 12/31/2011 12:00:00 AM

但我期待:

before: 12/31/2011 12:00:00 AM
after: 12/31/2011

我尝试使用 $(this).html() 和 $(this).text() 来获取初始值,认为在任何一种情况下,也许在控制台中都没有看到一些字符......但似乎没有什么区别。

我已经在以下链接中测试了在 javascript 中使用的正则表达式: http://www.regxlib.com/RETester.aspx

使用 JavaScript 引擎

Test Expression: (\s([0]\d|[1][0-2])(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})
Input Value: 12/3/2011 12:00:00 AM
Expected Match: 12:00:00 AM

它似乎可以正常工作。请注意,我在测试时删除了表达式上的前导“/”和尾随“/”,但我相信在 javascript 中创建新的 RegExp 时“/”是必要的。也许我错了,还有另一种方法,但是如果我尝试创建的表达式没有以这种方式包含,我似乎会在 firebug 中收到错误。

我似乎总是能在 Stack Overflow 上找到我遇到的大多数问题的答案...但我不知所措...所以,我很谦虚地成为提出这个问题的人时间...非常感谢任何帮助...

最佳答案

您没有分配结果。

item = item.replace(regex,'');

关于Javascript 替换正则表达式无法按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7761462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com