10

単純な質問かもしれませんが、今日は少し行き詰まっています。

シンボルが文字列に1回出現した場合にのみ一致する正規表現が必要%です..

例えば:

/regexpForSymbol(%)/.test('50%') => true
/regexpForSymbol(%)/.test('50%%') => false

ありがとう!

4

4 に答える 4

11

あなたが使用することができます:

^[^%]*%[^%]*$

アンカーは、すべてのキャラクターが確実にカバーされるようにするためにあります[^%]

于 2013-05-26T18:45:15.893 に答える
8

どうぞ。ただし、誰もが常にこれらを作成してくれるとは思わないでください。

^      # Start of string
[^%]*  # Any number of a character not matching `%`, including none.
%      # Matching exactly one `%`
[^%]*  # 
$      # End of string
于 2013-05-26T18:45:32.417 に答える
1

正規表現は必要ありません。

function checkIfOne(string, char) {
    return string.split(char).length === 2;
}

使用法:

var myString = "abcde%fgh",
    check = checkIfOne(myString, '%'); // will be true
于 2013-05-26T18:45:17.070 に答える
1

結果の配列を使用matchしてカウントできます。

str.match(/%/g).length == 1
于 2013-05-26T18:53:10.047 に答える