bool StringUtil::StringVerification(std::string src, std::string regular)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
regex pattern(regular.c_str());
if ( !regex_match( src, pattern ) )
{
return false;
}
return true;
#endif
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID||CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
regex_t reg;
int retval = regcomp(®, regular.c_str(), REG_EXTENDED | REG_NEWLINE);
retval = regexec(®, src.c_str(), 0, NULL, 0);
CCLOG("%s is %s\n", regular.c_str(), retval == 0 ? "legal" : "illegal");
regfree(®);
if (retval == 0) {
return true;
}
else
{
return false;
}
#endif
}
测试用例:
StringUtil::StringVerification(strPhoneNum, "^1\d{10}$");
跪求高手解答,为什么C语言的通不过呢???
try:
^1[0-9]{10}$
^1\d{10}$
主要是不同语法下的转义字符等
C语言跟c++转义是一样的啊。。这个没有什么问题。。
厉害!!确实是转义字符的问题 但是我不知道怎么改
^[a-zA-Z0-9~!@#$%^&*()_+`\-={}\[\]:\";'<>?,.\/]{%d,%d}$
这种的就有点蛋疼了
我已经搞定了!答案在这里!
http://blog.csdn.net/hanbingfengying/article/details/42613515
"^1\d{10}$"这个 改成 "^1\d{10}$" 应该就行了
打错了,改成 "^1\d{10}$" 应该就行了