菜鸟教程小白 发表于 2022-12-12 15:45:38

iphone - 如何验证允许 .在文本字段中只有一次


                                            <p><p>我的应用程序中有 4 个文本字段。</p>

<p>我将我的文本字段验证为文本字段允许 <code>0,1,...9</code> 和 <code>.</code>,因为我将代码编写为休闲 </p>

<pre><code>- (IBAction) textfield:(id)sender {

    if ( &gt; 0) {
      if ( &gt; 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 &lt; 46) || (Char01 &gt; 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 = @&#34;+([.](+)?)?&#34;; // @&#34;+[.]+&#34;;
NSPredicate *decimalTest = ;
BOOL isValidDecimal = ];
</code></pre>

<p>如果你想允许“。”在“.95”之类的第一个位置使用以下正则表达式,</p>

<pre><code>NSString *decimalRegex = @&#34;*([.](+)?)?&#34;; //@&#34;*[.]+&#34;;
</code></pre>

<p>您的代码应如下所示,</p>

<pre><code>- (IBAction)textfield:(id)sender {

    int textLength = [ length];

    if (textLength &gt; 0) {

      NSString *decimalRegex = @&#34;+([.](+)?)?&#34;; //@&#34;+[.]+&#34;;
      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]
查看完整版本: iphone - 如何验证允许 .在文本字段中只有一次