私はユーザーに特殊文字を使わずにユーザー名を入力する必要があるiOSアプリケーションを作成しています。フォームの検証を使用する
文字、数字、および下線のみを受け入れるようにテキストフィールドを検証する機能を作成するための支援が必要です。そして、それをサインアップボタンアクションに実装するとき、私は関数を呼び出し、検証のためにifの場合を追加したいと思います。
誰か教えてください。私は他の方法をオンラインで試みましたが、彼らは時代遅れであるように見え、何も私のために働いていませんでした。
私はユーザーに特殊文字を使わずにユーザー名を入力する必要があるiOSアプリケーションを作成しています。フォームの検証を使用する
文字、数字、および下線のみを受け入れるようにテキストフィールドを検証する機能を作成するための支援が必要です。そして、それをサインアップボタンアクションに実装するとき、私は関数を呼び出し、検証のためにifの場合を追加したいと思います。
誰か教えてください。私は他の方法をオンラインで試みましたが、彼らは時代遅れであるように見え、何も私のために働いていませんでした。
これを解決するためにregexを使用することができます。
あなただけの文字、数字、アンダースコアと他には何の完全な文字列をしたいので、この正規表現は十分でしょう。
^[\w]+$
あなたは、このようなコードで記述することができます。
let regex = try! NSRegularExpression(pattern: "^[\\w]+$", options: [])
if regex.firstMatch(in: yourTextField.text!, options: [], range: NSRange(location: 0, length: yourTextField.text!.characters.count)) != nil {
// the string is valid
}
ありがとうございます。どのように私は最低5の文字を最大10に制限するのですか? – KingJulian
@KingJulianは '+'を '{5,10}'に置き換えます – Sweeper
func checkUsername(str: String) -> Bool
{
do
{
let regex = try NSRegularExpression(pattern: "^[0-9a-zA-Z\\_]{7,18}$", options: .CaseInsensitive)
if regex.matchesInString(str, options: [], range: NSMakeRange(0, str.characters.count)).count > 0 {return true}
}
catch {}
return false
}
スウィフト3.0で試してみる
function va lidation(strValueに:文字列) - >ブール{
let aSet = NSCharacterSet(charactersIn:"^[0-9a-zA-Z\\_]{7,18}$").inverted
let compSepByCharInSet = string.components(separatedBy: aSet)
let numberFiltered = compSepByCharInSet.joined(separator: "")
return string == numberFiltered
}
https://stackoverflow.com/questions/38933193/swift-ios-alpha-numeric-regex-that-allows-underscores-and-dashes – Spynet
*」私は他の方法をオンラインで試しました "*あなたは何を試しましたか? - * "しかし、彼らは時代遅れのようだ" *なぜ?例? - * "何も私のために働かなかった" *は役に立たない記述です。どのように "うまくいかない"のですか? –
英数字とアンダースコアを含むNSCharacterSetを作成します。https://stackoverflow.com/questions/2767675/nscharacterset-how-do-i-add-to-alphanumericcharacterset-text-restrictionその後、各文字の呼び出しでは、myCharacterSet。 characterIsMember(myChar) ' –