我真的找不到正则表达式的任何解决方法来输入十进制的价格.这就是我想要的: -
12345
12345.1
12345.12
12345.123
0.123
0.123
我也想限制数字.
我真的创建了一个但没有按照假设进行验证
^([0-9] {1,5} |.([0-9] {1,5} \([0-9] {1,3})))$
还想知道上面的表达方式与一个不同
^([0-9] {1,5} |([0-9].([0-9] {1,3})))$即工作正常.
任何有很好解释的人.
"我正在使用NSRegularExpression - Objective C",如果这有助于更准确地回答
- (IBAction)btnTapped {
NSRegularExpression * regex = [NSRegularExpression regularExpressionWithPattern:
@"^\\d{1,5}([.]\\d{1,3})?|[.]\\d{1,3}$" options:NSRegularExpressionCaseInsensitive error:&error];
if ([regex numberOfMatchesInString:txtInput.text options:0 range:NSMakeRange(0, [txtInput.text length])])
NSLog(@"Matched : %@",txtInput.text);
else
NSLog(@"Not Matched : %@",txtInput.text);
}
Run Code Online (Sandbox Code Playgroud)
"我正在使用buttonTap方法".
这个简单的应该适合您的需求:
\d*[.]?\d+
Run Code Online (Sandbox Code Playgroud)
"数字(\d+)之前可以加一个点([.]?),它本身可以以数字(\d*)开头."
既然你在谈价格,那么科学记数法和负数都不是必需的.
就像一个兴趣点,这是我经常使用的那个,科学符号和负数包括:
[-+]?\d*[.]?\d+(?:[eE][-+]?\d+)?
Run Code Online (Sandbox Code Playgroud)
对于新的要求(参见注释),你不能在我给出的第一个正则表达式中指定你想要的位数,因为它不是它的构建方式.
这个应该更好地满足您的需求:
\d{1,5}([.]\d{1,3})?|[.]\d{1,3}
Run Code Online (Sandbox Code Playgroud)
"最多5位数(\d{1,5})可能跟随((...)?)一个点本身后跟最多3位数([.]\d{1,3}),或(|)只是一个点后跟最多3位数([.]\d{1,3})".
| 归档时间: |
|
| 查看次数: |
6192 次 |
| 最近记录: |