为什么此代码段不会生成6?并生成-1?
<!DOCTYPE html>
<html>
<body>
<script>
res =('{"name_^":"Ali","age":34}'.search('_^'));
document.body.innerHTML = res ;
</script>
</body>
</html>
答案 0 :(得分:1)
search
采用正则表达式。您尝试做的事情通常由indexOf
解决 - 但是,下面的内容可以解决:
let res ='{"name_^":"Ali","age":34}'.search(/_\^/);
console.log(res);
或者做得好
let res ='{"name_^":"Ali","age":34}'.indexOf('_^');
console.log(res);
答案 1 :(得分:1)
只是逃避角色,以便它不会被视为正则表达式而是作为一个简单的字符:
search("_\\^")
这会提供6
而不是-1
。
答案 2 :(得分:0)
您正在寻找indexOf函数:
'{"name_^":"Ali","age":34}'.indexOf('_^')
返回6 (搜索使用正则表达式,而^在regex中有特殊含义-1只表示字符串未找到)
答案 3 :(得分:0)
它没有用,因为正则表达式中的char ^有意义而js函数搜索将你的输入作为正则表达式。
如果你逃脱^ char它的工作原理:
<!DOCTYPE html>
<html>
<body>
<script>
res =('{"name_^":"Ali","age":34}'.search('_\\^'));
document.body.innerHTML = res ;
</script>
</body>
</html>
&#13;