Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 期间可以匹配,但不能使用_Javascript_Regex - Fatal编程技术网

Javascript 期间可以匹配,但不能使用

Javascript 期间可以匹配,但不能使用,javascript,regex,Javascript,Regex,我的记号笔有问题。我输入一个带句点的单词,如果它在那里,它可以匹配(例如过滤器。),但当它通过标记函数时,它不起作用。代码如下: function Search () { var Notes = document.getElementById("NoteHolder").innerHTML; var i = document.getElementById("Bar").value; var inputReOne = $.trim(i); var inp = inputReOne.replace(

我的记号笔有问题。我输入一个带句点的单词,如果它在那里,它可以匹配(例如
过滤器。
),但当它通过标记函数时,它不起作用。代码如下:

function Search () {
var Notes = document.getElementById("NoteHolder").innerHTML;
var i = document.getElementById("Bar").value;
var inputReOne = $.trim(i);
var inp = inputReOne.replace(".", "\.")
    if ($.trim(inp) !== '') {
        var InpComp = inp.toUpperCase();
        var Ind = tags.indexOf(InpComp);
        if (Ind === -1) {
            var inpReg = new RegExp(inp, "im");
            var WordCheck = Notes.match(inpReg);
            alert(WordCheck)
            if(WordCheck !== null) {
            tags.push(InpComp);
            var SearchReq = new RegExp("\\b(" + inp + ")\\b", "gim");
            var after = Notes.replace(SearchReq, "<mark class=" + ColorOptionReady + ">$1</mark>");
            document.getElementById("NoteHolder").innerHTML = after;
}
函数搜索(){
var Notes=document.getElementById(“票据持有人”).innerHTML;
var i=document.getElementById(“Bar”).value;
var inputReOne=$.trim(i);
变量inp=inputReOne.replace(“.”,“\”)
如果($.trim(inp)!=''){
var InpComp=inp.toUpperCase();
var Ind=标签indexOf(InpComp);
如果(Ind==-1){
var inpReg=新的RegExp(inp,“im”);
var WordCheck=Notes.match(inpReg);
警报(文字检查)
if(字检查!==null){
标签推送(InpComp);
var SearchReq=newregexp(“\\b(“+inp+”)\\b”,“gim”);
var after=注释。替换(SearchReq,“$1”);
document.getElementById(“票据持有人”).innerHTML=after;
}
WordCheck
匹配
过滤器。
但是当它运行完函数的其余部分时,它不会添加
过滤器。


它只是没有标记标签。有什么建议吗?

我想你需要将
“\.”
更改为
“\\.”
中的
var inp=inputReOne.replace(“.”,“\”)
。如果您使用的是
i
修饰符,请不要认为您需要
toUpperCase
检查。我想您需要检查所有可能的Regexp元字符,而不仅仅是
。这反过来让我觉得您正在尝试实现一些结果,如果采用不同的方法,可能会以更简单的方式解决。但我不知道你问题的根本问题;)我不明白为什么我需要将“\”改为“\”它对我不起作用。它只是返回
过滤器\。
好吧,你可能并不真的需要它-但是你在第二个RegExp中对
\\b
做了同样的操作,这与你在
字检查中匹配的不同。因为一个普通点是一个字边界,
\b
不会看到另一个边界,我猜。一个是什么标记“.”的方法?我想使用
\s
但也不起作用。你到底想实现什么?为什么需要额外检查正则表达式周围的单词边界?如果我认为
Notes
'Hello Filters.Foo'
,它将与
var SearchReq=new RegExp(\\b(“+inp”)匹配+“\\s”、“gim”);