正则表达式仅匹配字符串中使用一次的符号

Kos*_*ika 7 javascript regex

也许这是一个简单的问题,但今天我有点不知所措.

我需要正则表达式匹配只有符号%在字符串中出现一次..

例如:

/regexpForSymbol(%)/.test('50%') => true
/regexpForSymbol(%)/.test('50%%') => false
Run Code Online (Sandbox Code Playgroud)

谢谢!

Jer*_*rry 11

你可以使用:

^[^%]*%[^%]*$
Run Code Online (Sandbox Code Playgroud)

锚点是为了确保每个角色都被覆盖,你可能已经知道了什么[^%].


mel*_*wil 9

干得好.不要指望每个人都会一直为你制作这些.

^      # Start of string
[^%]*  # Any number of a character not matching `%`, including none.
%      # Matching exactly one `%`
[^%]*  # 
$      # End of string
Run Code Online (Sandbox Code Playgroud)

  • 这个downvote是不必要的.我很乐意删除它,如果它是重复的.仅仅因为它是重复的,不会以任何方式弄错. (4认同)