我正在研究模式,并且希望在1970年1月1日至2000年12月31日之间进行以下DOB限制。
我的下面代码是:
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
do {
long reportDate = cursor.getLong(cursor.getColumnIndex(ForecastsItemAccountDetailsContract.Columns.Report_Date));
long itemId = cursor.getLong(cursor.getColumnIndex(ForecastsItemAccountDetailsContract.Columns.Item_ID));
long accountId = cursor.getLong(cursor.getColumnIndex(ForecastsItemAccountDetailsContract.Columns.Account_ID));
int forecastedUnits = cursor.getInt(cursor.getColumnIndex(ForecastsItemAccountDetailsContract.Columns.Forecasted_Units));
for (Forecast forecast : mForecasts) {
if ((forecast.getForecast_From() < reportDate) && (forecast.getForecast_To() >= reportDate)) {
for (Item item : forecast.getItems()) {
if (item.getItem_ID() == itemId) {
for (Account account : item.getAccounts()) {
if (account.getAccount_ID() == accountId) {
account.setForecastedUnits(forecastedUnits);
}
}
}
}
}
}
} while (cursor.moveToNext());
}
我收到此验证错误:
错误:元素'DOB':[facet'pattern']模式'([[0] [1-9] | 1 [0-2])/ (0 [1-9] | [12] [0-9] | 3 [01])/(199 [0-9] | 200 [0-9] | 201 [01])'。
答案 0 :(得分:3)
如果该日期或月份为1到9,请尝试使该日期和月份的第一位为可选:
<xs:pattern value="(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])/(19[7-9][0-9]|2000)"/>
除此之外,您的年份捕捉模式也有问题。我使用以下模式来匹配从1970年1月1日到2000年12月31日的所有年份:
(19[7-9][0-9]|2000)