首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何在Flex中找到包含一个字符超过6次字符串?

我如何在Flex中找到包含一个字符超过6次字符串?
EN

Stack Overflow用户
提问于 2012-11-02 15:38:46
回答 2查看 1.5K关注 0票数 0

我想实现一个算法/验证。如何在Flex中找出一个字符串包含的特定字符是否超过6次?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-02 16:34:58

有两种方法,我可以想到:

  1. 使用RegExp.replace()如下所示:

var ch:String = "a";//必须检查的字符var text:String = "This is a example to show多少次‘“+ch+”“。”;//匹配非文本字符var regexp:RegExp =ch RegExp("^"+ch+"","g");//用空字符串替换非ch字符var text.replace:Number=.length(regexp,"").length;trace(text,":“,timesOccured );

  • 使用RegExp.match()如下所示:

var ch:String = "a";//必须检查的字符var text:String = "This is a example to show多少次‘“+ch+”“。”;//匹配新字符var regexp:RegExp = ch RegExp(ch,"g");var matches :text.match= text.match(regexp);var matches:text.match= 0;//matches可以是'null',所以我们正在执行额外的检查if( Matches ){ timesOccured = matches.length;} trace(text,":“,timesOccured );

现在有了timesOccured,就可以轻松地进行验证了:

代码语言:javascript
运行
复制
if( timesOccured > 6 ){
   //Do some stuff
}else{
   //Do other stuff
}    

警告:如果您的ch是正则表达式的特殊字符,如.+(]\等,则在将其传递给regexp变量之前,需要对其进行转义:

代码语言:javascript
运行
复制
ch = ch.replace(new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"), "\\$&");
票数 2
EN

Stack Overflow用户

发布于 2012-11-02 21:49:33

正则表达式的一种更简单的替代方法可以是:

代码语言:javascript
运行
复制
var str:String = "This is an example to show how many...";
//find occurrences for character 'a'

trace("Ocurrences:" + str.split('a').length-1);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13191173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档