在我的iPhone应用程序中,我通过传递一些参数来构建URL
,如
C:\Users\nikhil.wagh>npm install -g browser-sync
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\
node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "browser-sync"
npm ERR! node v4.4.5
npm ERR! npm v2.15.5
npm ERR! code ECONNREFUSED
npm ERR! errno ECONNREFUSED
npm ERR! syscall connect
npm ERR! Error: connect ECONNREFUSED 23.235.39.162:443
npm ERR! at Object.exports._errnoException (util.js:870:11)
npm ERR! at exports._exceptionWithHostPort (util.js:893:20)
npm ERR! at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1061:14)
npm ERR! { [Error: connect ECONNREFUSED 23.235.39.162:443]
npm ERR! code: 'ECONNREFUSED',
npm ERR! errno: 'ECONNREFUSED',
npm ERR! syscall: 'connect',
npm ERR! address: '23.235.39.162',
npm ERR! port: 443 }
npm ERR!
npm ERR! If you are behind a proxy, please make sure that the
npm ERR! 'proxy' config is set properly. See: 'npm help config'
npm ERR! Please include the following file with any support request:
npm ERR! C:\Users\nikhil.wagh\npm-debug.log
现在我要验证NSURL * url;
url = [url URLByAppendingPathComponent:Param1];
只接受URL安全字符,其他方法是对我同意的URL进行编码,但我需要验证Param1,因为它暴露给用户进行更改,是有没有任何直接的本地API这样做?,或正则表达式是唯一的方法?请提供正则表达式,如果是这样,Thanx提前
答案 0 :(得分:0)
你可以编码
NSString *encodedString = (__bridge_transfer NSString *)
CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(__bridge CFStringRef)originalString,
NULL,
CFSTR(":/?#[]@!$&'()*+,;="),
kCFStringEncodingUTF8);
if (![encodedString isEqualToString:originalString]) {
// It contains characters that are probably not legal.
}
或者您可以检查上面列出的字符,但那会有什么乐趣? : - )
NSCharacterSet *charSet = [NSCharacterSet
characterSetWithCharactersInString:
@":/?#[]@!$&'()*+,;="];
NSRange range = [string rangeOfCharacterFromSet:charSet];
if (range.location != NSNotFound) { ... }