Html模式,仅从数字输入中排除0作为第一个符号

时间:2015-05-23 13:30:29

标签: html regex

我有以下问题我需要从数字输入中排除0作为起始位数我有以下代码:

<input required type="number" min="1" value="1" id="number" name="number" pattern="[^0]d+"> 

但如果用户决定手动输入类似01234的数字,它就不起作用。

2 个答案:

答案 0 :(得分:2)

要使其有效,请将输入的类型更改为System.Data.Entity.Infrastructure.DbUpdateException ist aufgetreten. HResult=-2146233087 Message=Fehler beim Aktualisieren der Einträge (= Error while updating the entries). Weitere Informationen finden Sie in der internen Ausnahme. Source=EntityFramework StackTrace: bei System.Data.Entity.Internal.InternalContext.SaveChanges() bei System.Data.Entity.Internal.LazyInternalContext.SaveChanges() bei System.Data.Entity.DbContext.SaveChanges() bei Irgendwas.Controllers.SecondTypeController.DeleteConfirmed(Int32 id) in c:\Users\username\Documents\Visual Studio 2012\Projects\Irgendwas\Irgendwas\Irgendwas\Controllers\SecondTypeController.cs:Zeile 113. InnerException: System.Data.UpdateException HResult=-2146233087 Message=Fehler beim Aktualisieren der Einträge. Weitere Informationen finden Sie in der internen Ausnahme. Source=System.Data.Entity StackTrace: bei System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter) bei System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache) bei System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options) bei System.Data.Entity.Internal.InternalContext.SaveChanges() InnerException: System.Data.SqlClient.SqlException HResult=-2146232060 Message=Die DELETE-Anweisung steht in Konflikt mit der REFERENCE-Einschränkung 'FK_dbo.ThirdTypes_dbo.Second_SecondType_ID'. Der Konflikt trat in der 'Irgendwas.Models.SecondTypeContext'-Datenbank, Tabelle 'dbo.ThirdTypes', column 'SecondType_ID' auf. Die Anweisung wurde beendet. Source=.Net SqlClient Data Provider ErrorCode=-2146232060 Class=16 LineNumber=1 Number=547 Procedure="" Server=.\SQLEXPRESS State=0 StackTrace: bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) bei System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) bei System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) bei System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) bei System.Data.SqlClient.SqlCommand.ExecuteNonQuery() bei System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator translator, EntityConnection connection, Dictionary`2 identifierValues, List`1 generatedValues) bei System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter) InnerException: 并使用text作为模式

^[1-9]\d*$

此正则表达式不允许任意数量的起始零('01','001')或任何非数字字符('1b')并接受一位数字,例如<input required type="text" value="1" min="1" id="number" name="number" pattern="^[1-9]\d*$">

完整工作表格的示例:

1

答案 1 :(得分:0)

<input type="number" pattern="(?!0+)\d+">

解释

(?!0+)  # not followed by any number of zeros (negative look-ahead)
\d+     # at least one digit (by implication the first one is different from zero)

替代

<input type="number" pattern="[1-9]\d*">