用正则表达式更改日期格式的代码
时间: 2023-03-07 11:22:56 浏览: 69
日期格式的正则表达式代码如下:var regEx= /(\d{4})-(\d{2})-(\d{2})/;var dateString= "2020-03-04"; var newDateString= dateString.replace(regEx, "$3/$2/$1");console.log(newDateString); // 04/03/2020
相关问题
oracle 正则表达式 判断 日期 非法
在 Oracle 数据库中,可以使用正则表达式函数 `REGEXP_LIKE` 来判断日期是否非法。以下是一个示例代码:
```sql
SELECT date_string,
CASE WHEN REGEXP_LIKE(date_string, '^[0-9]{4}-[0-9]{2}-[0-9]{2}$') THEN 'Valid' ELSE 'Invalid' END AS is_valid_date
FROM your_table;
```
在这个示例中,我们使用了正则表达式 `^[0-9]{4}-[0-9]{2}-[0-9]{2}$` 来匹配 YYYY-MM-DD 格式的日期。如果日期字符串符合该格式,则返回 'Valid',否则返回 'Invalid'。你可以将 `your_table` 替换为你具体的表名,并根据需要修改正则表达式来匹配其他日期格式。
请注意,这里只是通过正则表达式进行初步的格式匹配,无法完全保证日期的合法性。如果需要更严格的日期验证,建议使用 Oracle 提供的日期函数进行进一步验证。
正则表达式保证日期的合法性
可以使用正则表达式来判断日期的合法性。以下是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DateValidator {
private static final String DATE_PATTERN =
"^(?:(?:31(\\/|-|\\.)(?:0?[13578]|1[02]))\\1|(?:(?:29|30)(\\/|-|\\.)(?:0?[1,3-9]|1[0-2])\\2))(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$|^(?:29(\\/|-|\\.)0?2\\3(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\\d|2[0-8])(\\/|-|\\.)(?:(?:0?[1-9])|(?:1[0-2]))\\4(?:(?:1[6-9]|[2-9]\\d)?\\d{2})$";
public static boolean isValid(String date) {
Pattern pattern = Pattern.compile(DATE_PATTERN);
Matcher matcher = pattern.matcher(date);
return matcher.matches();
}
}
```
这个代码中,我们定义了一个常量 `DATE_PATTERN`,它是一个正则表达式,用来匹配日期格式。然后我们定义了一个静态方法 `isValid`,它接受一个字符串参数 `date`,并返回一个布尔值,表示这个日期是否合法。在这个方法中,我们使用 `Pattern` 和 `Matcher` 类来进行正则表达式匹配。如果匹配成功,就返回 `true`,否则返回 `false`。
这个正则表达式可以匹配以下日期格式:
- dd/MM/yyyy
- dd-MM-yyyy
- dd.yyyy.MM
- dd/MM/yy
- dd-MM-yy
- dd.yy.MM
- 29/02/yyyy(闰年的 2 月 29 日)
- 29/02/yy(闰年的 2 月 29 日)
如果你需要匹配其他日期格式,可以修改这个正则表达式。