也许这是一个简单的问题,但今天我有点困惑。
只有当符号%
在字符串中出现一次时,我才需要正则表达式匹配..
例如:
/regexpForSymbol(%)/.test('50%') => true
/regexpForSymbol(%)/.test('50%%') => false
谢谢!
答案 0 :(得分:10)
您可以使用:
^[^%]*%[^%]*$
锚点是为了确保每个角色都被覆盖,你可能已经知道[^%]
做了什么。
答案 1 :(得分:8)
你走了。不要指望每个人都会一直为你制作这些。
^ # Start of string
[^%]* # Any number of a character not matching `%`, including none.
% # Matching exactly one `%`
[^%]* #
$ # End of string
答案 2 :(得分:2)
您不需要正则表达式。
function checkIfOne(string, char) {
return string.split(char).length === 2;
}
用法:
var myString = "abcde%fgh",
check = checkIfOne(myString, '%'); // will be true
答案 3 :(得分:1)
您可以使用match
并计算结果数组:
str.match(/%/g).length == 1