NSString+YOHO.h 6.61 KB
//
//  NSString+YOHO.h
//  YH_Mall
//
//  Created by 张同海 on 15/5/28.
//  Copyright (c) 2015年 YOHO. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (YOHO)
/**
 *    @brief  转换系统版本号为整数,示例:CFBundleShortVersionString 3.2.0->320
 *
 *    @return 整型
    
    @since 3.2
 */
+ (NSInteger)yh_getAPPVersionNumber;
/**
 @brief  获取自定义UserAgent头
 
 @return 自定义UserAgent
 
 @since 3.5
 */
+ (NSString *)yh_getYohoUserAgent;

/**
 @brief  对字符串MD5加密
 
 @return 加密结果
 
 @since 3.1
 */
- (NSString *)yh_md5String;

/**
 @brief  判断字符串移除空白字符后是否为空
 
 @return 是否为空
 
 @since 3.1
 */
- (BOOL)yh_isEmptyAfterTrimmingWhitespaceAndNewlineCharacters;

/**
 @brief  去除字符串中包含的空白字符
 
 @return 不含空白字符的字符串
 
 @since 3.1
 */
- (NSString *)yh_stringByTrimmingWhitespaceAndNewlineCharacters;

/**
 @brief  将字符串进行urlencoding
 
 @return encoding之后的字符串
 
 @since 3.1
 */
- (NSString *)yh_URLEncodedString;

/**
 @brief  将形如¥123,456的价格标示转换为¥123456
 
 @return 不含逗号分隔符的价格字符串
 
 @since 3.1
 */
- (CGFloat)yh_priceValue;

/**
 @brief  价格字符串加上人民币符号
 
 @return 带人民币符号的价格字符串
 
 @since 3.1
 */
- (NSString *)yh_stringByPrefixingWithRMBSymbol;

/**
 @brief  去除价格字符串中的人民币符号
 
 @return 不带人民币符号的价格字符串
 
 @since 3.1
 */
- (NSString *)yh_stringByDeletingRMBSymbolPrefix;

/**
 @brief  判断字符串是否满足邮箱格式
 
 @return 是否是邮箱形式的字符串
 
 @since 3.1
 */
- (BOOL)yh_conformsToEmailFormat;

/**
 @brief  判断字符串是否是手机号码格式
 
 @return 是否是手机号码形式的字符串
 
 @since 3.1
 */
- (BOOL)yh_conformsToMobileFormat;

/**
 @brief  判断字符串长度时候满足在最大值和最小值之间
 
 @param minimum 字符串长度限制最小值
 @param maximum 字符串长度限制最大值
 
 @return 是否满足长度显示
 
 @since 3.1
 */
- (BOOL)yh_isLenghGreaterThanOrEqual:(NSInteger)minimum lessThanOrEqual:(NSInteger)maximum;

/**
 @brief  获取字符串中的第一个URL子串的位置
 
 @return URL子串位置
 
 @since 3.1
 */
- (NSRange)yh_firstRangeOfURLSubstringi;

/**
 @brief  获取字符串中的第一个URL子串
 
 @return URL子串
 
 @since 3.1
 */
- (NSString *)yh_firstURLSubstring;

/**
 @brief  获取字符串中的URL子串
 
 @return URL子串集合
 
 @since 3.1
 */
- (NSArray *)yh_URLSubstrings;

/**
 @brief  获取字符串中第一段能头匹配正则表达的字符串
 
 @param regularExpression 匹配正则表达
 
 @return 第一段能匹配的字符串
 
 @since 3.1
 */
- (NSString *)yh_firstMatchUsingRegularExpression:(NSRegularExpression *)regularExpression;

/**
 @brief  获取字符串中第一段能头匹配正则表达的字符串
 
 @param regularExpressionPattern 匹配字符串模板
 
 @return 第一段能匹配的字符串
 
 @since 3.1
 */
- (NSString *)yh_firstMatchUsingRegularExpressionPattern:(NSString *)regularExpressionPattern;

/**
 @brief  判断字符串是否全部匹配目标字符串的正则表达
 
 @param regularExpressionPattern 匹配字符串模板
 
 @return 是否匹配
 
 @since 3.1
 */
- (BOOL)yh_matchesRegularExpressionPattern:(NSString *)regularExpressionPattern;

/**
 @brief  查找符合模板字符串正则表达的第一段字符串的rang
 
 @param regularExpressionPattern 匹配字符串模板
 
 @return 能匹配上的第一段字符串位置
 
 @since 3.1
 */
- (NSRange)yh_rangeOfFirstMatchUsingRegularExpressionPattern:(NSString *)regularExpressionPattern;

/**
 @brief  将符合模板字符串正则表达的字符串统一替换为目标字符串
 
 @param regularExpressionPattern 匹配字符串模板
 @param templ                    替换字符串
 
 @return 完成替换后的字符串
 
 @since 3.1
 */
- (NSString *)yh_stringByReplacingMatchesUsingRegularExpressionPattern:(NSString *)regularExpressionPattern withTemplate:(NSString *)templ;

/**
 @brief  将url请求的参数组织为字典形式
 
 @return 参数列表
 
 @since 3.1
 */
- (NSDictionary *)yh_URLParameters;
/**
 @brief  判断NSString是数值型
 
 @return 字符串是否是数值
 
 @since 3.1
 */
- (BOOL)yh_isPureDigital;

/**
 @brief  图片链接处理,自定义宽高和切图模式
 
 @param width  期望图片宽度
 @param height 期望图片高度
 @param mode   切图模式
 
 @return 图片url
 
 @since 3.1
 */
- (NSString *)yh_splitUrlWithWidth:(NSString *)width height:(NSString *)height mode:(NSString *)mode;


/**
 @brief  图片链接处理,自定义宽高,切图模式固定
 
 @param width  期望图片宽度
 @param height 期望图片高度
 
 @return 图片url
 
 @since 3.1
 */
- (NSString *)yh_splitUrlWithWidth:(NSString *)width height:(NSString *)height;

/**
 @brief  获取设置行间距的字符串
 
 @param lineSpacing 指定行间距
 @param breakMode   指定换行模式
 @param alignment   对齐方式
 
 @return 属性字符串
 
 @since 3.5
 */
- (NSMutableAttributedString *)yh_attributedStringWithLineSpacing:(CGFloat)lineSpacing lineBreakMode:(NSLineBreakMode)breakMode textAlignment:(NSTextAlignment)alignment;
/**
 @brief  获取属性字符串
 
 @param font        字体
 @param lineSpacing 行间距
 @param breakMode   换行模式
 
 @return 属性字符串
 
 @since 3.1
 */
-(NSMutableAttributedString *)yh_attributedStringFromStingWithFont:(UIFont *)font withLineSpacing:(CGFloat)lineSpacing withLineBreakMode:(NSLineBreakMode)breakMode;

/**
 @brief  获取属性字符串
 
 @param font        字体
 @param lineSpacing 行间距
 @param breakMode   换行模式
 @param alignment   对齐方式
 
 @return 属性字符串
 
 @since 3.1
 */
-(NSMutableAttributedString *)yh_attributedStringFromStingWithFont:(UIFont *)font lineSpacing:(CGFloat)lineSpacing lineBreakMode:(NSLineBreakMode)breakMode alignment:(NSTextAlignment)alignment;

/**
 @brief  获取文字占据的尺寸
 
 @param size        文字显示区域大小
 @param font        字体
 @param lineSpacing 行间距
 @param breakMode   换行模式
 
 @return 字符区域大小
 
 @since 3.1
 */
-(CGSize)yh_boundingRectWithSize:(CGSize)size withTextFont:(UIFont *)font withLineSpacing:(CGFloat)lineSpacing withLineBreakMode:(NSLineBreakMode)breakMode;

- (CGFloat)yh_heightWithFont:(UIFont *)font constrainedToWidth:(CGFloat)width;

//获取浮点字符串(20.00)
- (NSString *)yh_floatString;

//处理匿名姓名
-(NSString *)yh_anonymousName;

- (NSString *)yh_stringByRemoveRMBSymbol;

//处理匿名号码
- (NSString *)yh_anonymousMoblie;

@end