アルゴリズム/検証を実装したい。Flex で文字列に特定の文字が 6 回以上含まれているかどうかを確認するにはどうすればよいですか?
質問する
1489 次
2 に答える
2
正規表現のより簡単な代替方法は次のとおりです。
var str:String = "This is an example to show how many...";
//find occurrences for character 'a'
trace("Ocurrences:" + str.split('a').length-1);
于 2012-11-02T13:49:33.243 に答える
2
2つの方法があり、私は考えることができます:
次のようにRegExpと.replace()を使用します。
var ch:String = "a"; //Character, that must be checked var text:String = "This is an example to show how many times '"+ch+"' occured."; //Matches non-`ch` characters var regexp:RegExp = new RegExp("[^"+ch+"]","g"); //Replacing non-`ch` characters with empty string var timesOccured:Number = text.replace(regexp,"").length; trace(text, ": " ,timesOccured );
-
var ch:String = "a"; //Character, that must be checked var text:String = "This is an example to show how many times '"+ch+"' occured."; //Matches `ch` characters var regexp:RegExp = new RegExp(ch,"g"); var matches:Array = text.match(regexp); var timesOccured:Number = 0; //`matches` can be 'null', so we are performing additional check if( matches ){ timesOccured = matches.length; } trace(text, ": " ,timesOccured );
があればtimesOccured
、検証を簡単に行うことができます。
if( timesOccured > 6 ){
//Do some stuff
}else{
//Do other stuff
}
警告:が、、、、、、などのch
正規表現の特殊文字である場合は、変数に渡す.
前にエスケープする必要があります。+
(
]
\
regexp
ch = ch.replace(new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"), "\\$&");
于 2012-11-02T08:34:58.133 に答える