我正在尝试验证iOS程序中的字段: 我需要匹配一个电话号码,但该字段是可选的 我想使用正则表达式来匹配数字,以验证是否没有电话号码:
[0-9\-\+\*]{4,14}
然后我想如何匹配有效号码或根本没有号码的地方?
(:?[0-9\-\+\*]{4,14})?
意思是,在0到9,+, - ,*之内的4到14个字符之间匹配,或者没有。 This website显示该模式的infinte匹配。
想法?
答案 0 :(得分:0)
^$|^[0-9\-\+\*]{4,14}$
至于这带来的问题:
正则表达式是一种很好的验证方法。它是跨平台的。
不需要另一层代码来实现。简单干净。
答案 1 :(得分:-1)
你应该只编码。我不知道你的语言,但基本上是:
public static void main(String[] args) {
String s= "abc";
String s1="cba";
char[] aArr = s.toLowerCase().toCharArray();
char[] bArr = s1.toLowerCase().toCharArray();
// An array to hold the number of occurrences of each character
int[] counts = new int[26];
for (int i = 0; i < aArr.length; i++){
counts[aArr[i]-97]++; // Increment the count of the character at respective position
counts[bArr[i]-97]--; // Decrement the count of the character at respective position
}
// If the strings are anagrams, then counts array will be full of zeros not otherwise
for (int i = 0; i<26; i++){
if (counts[i] != 0)
return false;
}
应该这样做。