summaryrefslogtreecommitdiffstats
path: root/base/string_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/string_util.cc')
-rw-r--r--base/string_util.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/base/string_util.cc b/base/string_util.cc
index a66dae6..c9b0aad 100644
--- a/base/string_util.cc
+++ b/base/string_util.cc
@@ -584,6 +584,32 @@ bool ContainsOnlyWhitespace(const string16& str) {
return true;
}
+template<typename STR>
+static bool ContainsOnlyCharsT(const STR& input, const STR& characters) {
+ for (typename STR::const_iterator iter = input.begin();
+ iter != input.end(); ++iter) {
+ if (characters.find(*iter) == STR::npos)
+ return false;
+ }
+ return true;
+}
+
+bool ContainsOnlyChars(const std::wstring& input,
+ const std::wstring& characters) {
+ return ContainsOnlyCharsT(input, characters);
+}
+
+#if !defined(WCHAR_T_IS_UTF16)
+bool ContainsOnlyChars(const string16& input, const string16& characters) {
+ return ContainsOnlyCharsT(input, characters);
+}
+#endif
+
+bool ContainsOnlyChars(const std::string& input,
+ const std::string& characters) {
+ return ContainsOnlyCharsT(input, characters);
+}
+
std::string WideToASCII(const std::wstring& wide) {
DCHECK(IsStringASCII(wide)) << wide;
return std::string(wide.begin(), wide.end());