iphone - 如何验证允许 .在文本字段中只有一次
<p><p>我的应用程序中有 4 个文本字段。</p>
<p>我将我的文本字段验证为文本字段允许 <code>0,1,...9</code> 和 <code>.</code>,因为我将代码编写为休闲 </p>
<pre><code>- (IBAction) textfield:(id)sender {
if ( > 0) {
if ( > 10){
textfield.text = ;
}
else {
//retrieve last character input from texfield
int I01 = ;
int Char01 = ;
//check and accept input if last character is a number from 0 to 9
if ( (Char01 < 46) || (Char01 > 57) || (Char01 == 47) ) {
if (I01 == 1) {
textfield.text = nil;
}
else {
textfield.text = ;
}
}
}
}
}
</code></pre>
<p>它工作正常,现在我需要验证 <code>.</code> 只允许在文本字段中使用一次。</p>
<p>例如:123.45</p>
<p>根据我的代码,如果我再次放置 <code>.</code> 是允许的。
例如:123.45.678 </p>
<p>但是一旦我放置它就不允许了。 ,该文本字段是不允许的。</p>
<p>编辑:123.45678。</p>
<p>我该怎么做呢,</p>
<p>谁能帮帮我。</p>
<p>提前谢谢你。 </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>对以“23.67”等数字开头的文本试试这个谓词</p>
<pre><code>NSString *decimalRegex = @"+([.](+)?)?"; // @"+[.]+";
NSPredicate *decimalTest = ;
BOOL isValidDecimal = ];
</code></pre>
<p>如果你想允许“。”在“.95”之类的第一个位置使用以下正则表达式,</p>
<pre><code>NSString *decimalRegex = @"*([.](+)?)?"; //@"*[.]+";
</code></pre>
<p>您的代码应如下所示,</p>
<pre><code>- (IBAction)textfield:(id)sender {
int textLength = [ length];
if (textLength > 0) {
NSString *decimalRegex = @"+([.](+)?)?"; //@"+[.]+";
NSPredicate *decimalTest = ;
BOOL isValidDecimal = ];
if (!isValidDecimal) {
NSString *text = [ substringToIndex:textLength - 1];
}
}
}
</code></pre>
<p>我想这应该可行!试试看!</p></p>
<p style="font-size: 20px;">关于iphone - 如何验证允许 .在文本字段中只有一次,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/4665884/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/4665884/
</a>
</p>
页:
[1]