我有一个场景,我需要使用 match_regex 来识别下面给出的字符是否只出现一次,并且输入不应包含给定列表之外的任何其他字符或数字[+-/*UD]
。应将每个字符视为单独的字符。
仅由一次 [+,-,/,*,U,D] 组成
有效案例:
+-/
-UD
/-D
+D/
最佳答案
您可以使用negative look ahead assertion与 captured group value 。以下正则表达式将检查每个字符后面是否相同。只有出现一次的字符串才会被匹配。
^(?:([+\-\/*UD])(?!.*\1))+$
<小时/>
<小时/>
检查演示片段:
function change(ele) {
var re = /^(?:([+\-\/*UD])(?!.*\1))+$/;
document.getElementById('out').textContent = re.test(ele.value) ? 'Valid' : 'Not Valid';
}
<input type="text" oninput="change(this)" />
<span id="out"></span>
关于javascript - Match Regex 命令检查一次且仅一次出现 [+,-,/,*,U,D],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37893800/