javascript - Finding ++ in Regular Expression
问题描述
I want to find ++ or -- or // or ** sign in in string can anyone help me?
var str = document.getElementById('screen').innerHTML;
var res = str.substring(0, str.length);
var patt1 = ++,--,//,**;
var result = str.match(patt1);
if (result)
{
alert("you cant do this :l");
document.getElementById('screen').innerHTML='';
}
解决方案
这通过反向引用找到双倍的字符:
/([+\/*-])\1/g
[从q。评论]:我知道这一点,但是当我输入 var patt1 = /[++]/i; 代码查找 + 和 ++
[++]
表示任意一个字符。通常+
是量词“1 或更多”,当它应该是文字时需要用前导反斜杠转义,除非在括号中它没有任何特殊含义。
在字符类中确实需要转义的字符是例如转义字符本身(反斜杠)、表达式分隔符(斜杠)、右括号和范围运算符(破折号/减号),后者除了字符类的末尾就像我的代码示例一样。
一个字符类[]
匹配一个字符。例如,量词[abc]{2}
将匹配“aa”、“bb”,但也匹配“ab”。
您可以在括号中使用对匹配项的反向引用:
/(abc)\1
这里的\1
指的是第一个括号(abc)
。整个表达式将匹配“abcabc”。
再次澄清:我们可以在反向引用上使用量词:
/([+\/*-])\1{9}/g
这完全匹配了类中的 10 个相等的字符、子模式本身和更多的 9 个反向引用。
/.../g
查找由于修饰符 global (g) 而出现的所有事件。
推荐阅读
- java - 运行 MapReduce 应用程序时如何解决此错误?
- ios - 我无法在 iOS 15 的 WidgetConfiguration 中添加 systemExtraLarge 系列
- c# - 使用 xUnit 和 Moq 在 .NET 5 中对 FluentEmail 进行单元测试
- android - 当用户点击该功能时,我可以在 Firebase 中设置不同的参考值吗?
- mysql - 在新选项卡上打开每个结果时出现 ActiveRecord::StaleObject 错误
- linux - 将 TMUX 的箭头键与 MacOS 终端绑定
- file - 搜索包含 7000 个图像名称的列表
- python - 如果两列相等且第三列为 True,则在新列中返回布尔值
- swift - 在vapor4中进行计算
- flutter - 在 null 上调用了 getter 'length'。接收方:null 尝试调用:长度 FutureBuilder 和列表