如何在Javascript中实现此正则表达式?

时间:2010-10-03 09:59:14

标签: javascript regex

如何创建一个将使用此字符串(名为url_string)的Javascript正则表达式:

http://localhost:3000/new_note?date1=01-01-2010&date2=03-03-2010

并将其返回,但将date1参数的值设置为新的日期变量,称为new_date_1

3 个答案:

答案 0 :(得分:1)

有更好的方法来操作URL而不是正则表达式,但像这样的简单解决方案可能有效:

after = before.replace(/date1=[\d-]+/, "date1=" + newDate);

[\d-]+匹配非空数字和/或破折号序列。如果你真的需要,你也可以更具体,例如\d{2}-\d{2}-\d{4},或更复杂的日期正则表达式,拒绝无效日期等。

请注意,由于正则表达式使"date1="前缀成为匹配的一部分,因此它也会替换为替换部分。

答案 1 :(得分:0)

这很麻烦,但是:

var url_string = "http://localhost:3000/new_note?date1=01-01-2010&date2=03-03-2010";
var new_date_1 = "01-02-2003";

var new_url_string = url_string.replace(/date1=\d{2}-\d{2}-\d{4}/, "date1="+new_date_1);
/* http://localhost:3000/new_note?date1=01-02-2003&date2=03-03-2010 */

JS中必须有一个正确的URL解析器。有一个谷歌。

答案 2 :(得分:0)

url.replace(/date1=[0-9-]{10}/, "date1=" + new_date_1);