| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 810 人关注过本帖, 1 人收藏
标题:字符串处理
只看楼主 加入收藏
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
结帖率:83.33%
收藏(1)
已结贴  问题点数:20 回复次数:11 
字符串处理
我只想保留一段字符串的中英文和数字。其它去掉。用什么函数?
搜索更多相关主题的帖子: 数字 函数 保留 字符串 处理 
2023-08-05 08:32
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:260
专家分:47
注 册:2019-3-8
收藏
得分:5 
MyFll函数:
FTrim(cStr,nMode|cChar)
删除除指定字符以外的字符。此函数类似LTrim() RTrim() AllTrim(),但区别是只保留指定的字符,而不是删除指定字符
返回值:
删除后的字符
参数:
    cStr:字符型,待处理的字符串
    nMode:数值型,1-只保留数字,2-只保留小写字母,3-只保留大写字母,4-只保留大小写字母,5只保留大小写字母和数字
cChar:字符型,限定字符串中允许出现的字母
示例代码
Set Library To myfll
cStr="abc123-DEF..99测试"
?FTrim(cStr,1)  &&只有数字 12399
?FTrim(cStr,2)  &&只有小写字母 abc
?FTrim(cStr,3)  &&只有大写字母 DEF
?FTrim(cStr,4)  &&只有大小写字母 abcDEF
?FTrim(cStr,5)  &&只有数字和字母 abc123DEF99
?FTrim(cStr,"1234567890ABCDEF") &&只保留限定的字符    123DEF99
Set Library To
2023-08-05 09:38
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
以下是引用zhousr在2023-8-5 09:38:29的发言:

MyFll函数:
FTrim(cStr,nMode|cChar)
删除除指定字符以外的字符。此函数类似LTrim() RTrim() AllTrim(),但区别是只保留指定的字符,而不是删除指定字符
返回值:
删除后的字符
参数:
    cStr:字符型,待处理的字符串
    nMode:数值型,1-只保留数字,2-只保留小写字母,3-只保留大写字母,4-只保留大小写字母,5只保留大小写字母和数字
cChar:字符型,限定字符串中允许出现的字母
示例代码
Set Library To myfll
cStr="abc123-DEF..99测试"
?FTrim(cStr,1)  &&只有数字 12399
?FTrim(cStr,2)  &&只有小写字母 abc
?FTrim(cStr,3)  &&只有大写字母 DEF
?FTrim(cStr,4)  &&只有大小写字母 abcDEF
?FTrim(cStr,5)  &&只有数字和字母 abc123DEF99
?FTrim(cStr,"1234567890ABCDEF") &&只保留限定的字符    123DEF99
Set Library To

汉字怎么保留???
2023-08-05 10:36
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10544
专家分:42958
注 册:2014-5-20
收藏
得分:5 
数字字母:  CHRTRAN(str,CHRTRAN(str,chs,""),"")
chs = "1234567890AaBbCcDdEdFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"
2023-08-05 11:02
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10544
专家分:42958
注 册:2014-5-20
收藏
得分:0 
str = "abc123-DEF..99测试"
ch1 = "1234567890AaBbCcDdEdFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"
ch2  = 0h000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3A3B3C3D3E3F405B5C5D5E5F607B7C7D7E7F
? "数字字母:",CHRTRAN(str,CHRTRAN(str,ch1,""),"")
? "符号:",CHRTRAN(str,CHRTRAN(str,ch2,""),"")
? "汉字:",CHRTRAN(str,ch1+ch2,"")
2023-08-05 11:26
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9805
专家分:26913
注 册:2012-2-5
收藏
得分:5 
全角字符都是中文吗

坚守VFP最后的阵地
2023-08-06 00:30
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
回复 6楼 sdta
想保留的就是 英文大小写 中文 其它所有符号去掉。
2023-08-06 08:04
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
程序代码:
CLEAR 

?regReplace('/[^\u4e00-\u9fa5a-zA-Z0-9]+/g',"今天aassss上午    上了_@#QQ一个课程,收---%^&获颇丰!123",'**')

** 正则表达式替换字符串
** 
** 参数1:正则表达式
** 参数2:替换字符串
** 参数3:匹配替换新字符

FUNCTION regReplace
PARAMETERS para1,para2,para3
IF EMPTY(para1) .OR. EMPTY(para2)
RETURN ''
ENDIF 

LOCAL retustr as String 
retustr=''

TRY
** JS定义
TEXT TO lcJs TEXTMERGE PRETEXT 1+2 NOSHOW
function regReplace(inputStr){
    var regExp = <<para1>>; // 匹配非中文、非字母、非数字的字符
    return inputStr.replace(regExp,'<<para3>>');
}
ENDTEXT
STRTOFILE(lcJs,"c:\js.txt")
oJs=Createobject("ScriptControl")
oJs.Language="JavaScript"
oJs.AddCode(lcJs)
retustr=oJs.run("regReplace",para2)

CATCH TO err
RETURN para1
FINALLY 
IF VARTYPE(oJs)='O'
RELEASE oJs
ENDIF 
ENDTRY

RETURN retustr


最后这样干了,请大家多指点
2023-08-06 09:09
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10544
专家分:42958
注 册:2014-5-20
收藏(1)
得分:0 
可以按需要编码分类替换
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
str = "abc123-DEF..99测试"
ch1 = "1234567890"
ch2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
ch3 = "abcdefghijklmnopqrstuvwxyz"
ch4  = 0h000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F3A3B3C3D3E3F405B5C5D5E5F607B7C7D7E7F
? "只有数字:",CHRTRAN(str,CHRTRAN(str,ch1,""),"")
? "只有字母:",CHRTRAN(str,CHRTRAN(str,ch2+ch3,""),"")
? "大写字母:",CHRTRAN(str,CHRTRAN(str,ch2,""),"")
? "小写字母:",CHRTRAN(str,CHRTRAN(str,ch3,""),"")
? "数字字母:",CHRTRAN(str,CHRTRAN(str,ch1+ch2+ch3,""),"")
? "汉字编码:",CHRTRAN(str,ch1+ch2+ch3+ch4,"")
? "符号编码:",CHRTRAN(str,CHRTRAN(str,ch4,""),"")
? "非符号码:",CHRTRAN(str,ch4,"")
? "字母汉字:",CHRTRAN(str,ch1+ch4,"")

2023-08-06 10:36
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9805
专家分:26913
注 册:2012-2-5
收藏
得分:0 
以下是引用weiyisc在2023-8-6 08:04:53的发言:

想保留的就是 英文大小写 中文 其它所有符号去掉。

 A,、算中文吗

坚守VFP最后的阵地
2023-08-06 18:20
快速回复:字符串处理
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017430 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved