2017-07-20 9 views
1

名を検証し、それがウェブ間違っhttps://regex101.comに動作しますが、私は私のKHI迅速なプロジェクトで使用。ベトナムの名前私はベトナムSAUアドレスを検証するために使用

extension String { 
func isValidAddress() -> Bool { 
    let RegEx = "([0-9A-ZẮẰẲẴẶĂẤẦẨẪẬÂÁÀÃẢẠĐẾỀỂỄỆÊÉÈẺẼẸÍÌỈĨỊỐỒỔỖỘÔỚỜỞỠỢƠÓÒÕỎỌỨỪỬỮỰƯÚÙỦŨỤÝỲỶỸỴ']+\\s?\\b){2,}" 
    let Test = NSPredicate(format:"SELF MATCHES %@", RegEx) 
    return Test.evaluate(with: self.uppercased()) 
} 

}私のテスト

文字列 "13分の123号線2.第2四半期、タンビンディスト。、BinhのトライドンA区" それは私が削除

正しいKHI "" "/" と "" のような:12 313道路第2クォーター2、タンビン区。 BinhのトライドンAウォードあなたの助けを

感謝。 NSPredicate

+0

CUA要件は何ですか?あなたの正規表現は、.' '' '/' and'一致していません - あなたは追加一致させる必要がある場合は、[...] ''完全な文字列の一致を必要とMATCHES'注意、およびCUAの正規表現Khongのをた 'に追加します完全な文字列に一致します。だから、あなたは何が必要なのですか? –

+0

ミューオンは確認してください文字列内の2つの以上の空白があると、 '試みる内部文字/数字/句読点がLE [\\ W \\ P {P}] +(?:\\ S [\\ Pパターンの開始時と終了時{P} \\ W] +)+「それともadd' ' –

+0

. *'あなたが気にしない場合。 –

答えて

1

アルの最初に、MATCHESは、完全な文字列の一致が必要です。 CUAパターンは句読点が一致していないので、それは文字列" 123/13 Hương lộ 2. Khu phố 2, Quận Bình Tân. Phường Bình Trị Đông A"と一致することはできません。あなたのFlickrの現在のパターンCO町PHEP部分一致と

プーthuộcTREN要件、HOACズンrange(of:options:range:locale:)

return self.range(of: "(?i)([0-9A-ZẮẰẲẴẶĂẤẦẨẪẬÂÁÀÃẢẠĐẾỀỂỄỆÊÉÈẺẼẸÍÌỈĨỊỐỒỔỖỘÔỚỜỞỠỢƠÓÒÕỎỌỨỪỬỮỰƯÚÙỦŨỤÝỲỶỸỴ']+\\s?\\b){2,}", options: .regularExpression) != nil 

(?i)は、正規表現エンジンのLAパターンを指示する短い方法です共同注意は大文字と小文字を区別しません)。さもないと、正規表現パターンnhữngBANに追加した入力文字列をtrongことを期待しています。

VDあなたは"[\\w\\p{P}]+(?:\\s[\\w\\p{P}]+)+" CUA文字列は、\w文字、数字と_任意のパターンに一致\p{P}は(あなたが任意の非空白にちょうど\S持ち運びにくいの一致を使用してと思うかもしれません)句読点にマッチすると完全に一致して縫います。

+0

さて、あなたは 'THAMが' /追加縫う、 '.'と'' '' [...]中に、酔って、 '' [後、DJEチョンが一致することができます。 –

+0

すべての質問を投稿する前に、ところで、私は、SAUの[を./追加しようとするが、それはうまくいきませんでしたあなたの助けに感謝私はあなたのFlickr – Nick

+0

「(のself.range:...」で試してみて、それが働いは、@Wiktorに感謝します – Nick

関連する問題