我想找到++或-或//或**字符串登录,有人可以帮助我吗?
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='';
}
答案 0 :(得分:5)
这会通过向后引用找到字符的两倍:
/([+\/*-])\1/g
[从q。注释]:我知道这一点,但是当我键入var patt1 = / [++] / i;代码查找+和++
[++]
表示任意一个字符。通常+
是数量词“ 1或更多”,并且在应为原义的情况下需要用反斜杠转义,除非括号中没有特殊含义。
在字符类中确实需要转义的字符例如转义字符本身(反斜杠),表达式delimimiter(斜杠),右括号和范围运算符(破折号/减号),后者在字符类末尾(如我的代码示例所示)。
字符类[]
与一个字符匹配。量词,例如[abc]{2}
将匹配“ aa”,“ bb”,但也匹配“ ab”。
您可以在括号中使用反向引用:
/(abc)\1
此处\1
是指第一个括号(abc)
。整个表达式将匹配“ abcabc”。
再次澄清:我们可以在反向引用上使用量词:
/([+\/*-])\1{9}/g
这与类中的10个等于字符,子模式本身以及另外9个反向引用完全匹配。
/.../g
查找所有由于修饰符全局(g)而引起的事件。
答案 1 :(得分:3)
这样定义模式:
var patt1 = /\+\+|--|\/\/|\*\*/;
现在它应该做您想要的。
有关正则表达式的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
答案 2 :(得分:2)
您可以使用:
/\+\+|--|\/\/|\*\*/
作为您的表情。
在这里,我通过在每个{\
之前使用反斜杠来转义特殊字符。
我还在正则表达式上使用了.test(str)
,因为您需要的只是一个布尔(true
/ false
)结果。
请参见下面的工作示例:
var str = document.getElementById('screen').innerHTML;
var res = str.substring(0, str.length);
var patt1 = /\+\+|--|\/\/|\*\*/;
var result = patt1.test(res);
if (result) {
alert("you cant do this :l");
document.getElementById('screen').innerHTML = '';
}
<div id="screen">
This is some++ text
</div>
答案 3 :(得分:1)
尝试一下:-
为
n+
:-匹配任何包含至少一个n的字符串
n*
匹配包含零次或多次出现n的任何字符串
我们需要在特殊字符之前使用反斜杠。
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='';
}
<div id="screen">2121++</div>