gpt4 book ai didi

javascript - 奇怪的正则表达式问题

转载 作者:行者123 更新时间:2023-11-28 02:40:26 24 4
gpt4 key购买 nike

我使用的正则表达式返回太多文本。该表达式应该从文本中删除名称和日期。

var sCurrentText = "(26 JAN 2011) - ILewis Provided excellent translation.";
var sRegxDate = "\([0-9]{2}[\\\.\/\-, ](Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[\\\.\/\-, ][0-9]{4}\)[, \-]{0,3}[A-z]+ ?\-?\:? ?";
var DatePattern = new RegExp(sRegxDate, "i");
var sDate = DatePattern.exec(sCurrentText);
alert(sDate);

我期望:

(26 JAN 2011) - ILewis

但是弹出窗口显示:

(26 JAN 2011) - ILewis,JAN

其他烦人的问题:

  1. 我无法在正则表达式中模拟这个问题。 http://regexpal.com/

2.

alert(sDate[0]); 

返回:

(26 JAN 2011) - ILewis

但是

oTextbox.value = sDate[0];

结果是一个空文本框。令人沮丧。

我做错了什么?

最佳答案

您警告 sDate 认为它是一个字符串,而实际上它是一个数组。逗号不在匹配中,它是一个分隔符。

第一个元素是:

(26 JAN 2011) - ILewis

第二个是:

JAN

这是因为月份位用括号括起来。它是一个捕获组,exec 将捕获组作为结果的一部分返回。

你想要

sDate[0]

如果您从中得到一个空文本框,则说明除了正则表达式之外还存在其他问题。

您的正则表达式中还存在一些未正确转义的 \ 。因为它在那里,它在 IE 中根本不起作用。只要有 \

,就需要 \\

编辑:这个 fiddle 显示了正在运行的代码。它有效。

http://jsfiddle.net/5azr9/

关于javascript - 奇怪的正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12735673/

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