相关疑难解决方法(0)

如何在JavaScript中替换所有出现的字符串

我有这个字符串:

"Test abc test test abc test test test abc test test abc"
Run Code Online (Sandbox Code Playgroud)

str = str.replace('abc', '');
Run Code Online (Sandbox Code Playgroud)

似乎只删除abc上面字符串中的第一次出现.如何更换所有出现的内容?

javascript string replace

4081
推荐指数
47
解决办法
319万
查看次数

在正则表达式javascript中转义问号

我认为这是一个简单的问题.

我试图在JavaScript中使用正则表达式在另一个字符串中搜索字符串的出现,如下所示:

 var content ="Hi, I like your Apartment. Could we schedule a viewing? My phone number is: ";

 var gent = new RegExp("I like your Apartment. Could we schedule a viewing? My", "g");

 if(content.search(gent) != -1){   
     alert('worked');     
 }          
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为?字符....我试图逃避它\,但这也不起作用.有没有其他方式可以使用?字面而不是特殊字符?

javascript regex literals

77
推荐指数
4
解决办法
9万
查看次数

如何突出显示自动完成jquery ui中的输入单词

你可以帮我突出显示自动完成文本框中输入的单词.我已经填充了自动完成的单词,我只需要突出显示单独输入的单词.我是Jquery自动完成的新手

我得到的输出文本像<Strong>Br</Strong>ijesh //看作文字
而不是单独强调Br.

以下是片段

$(document).ready(function () {
$("#studentName").autocomplete({
    source: function (request, response) {
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "Webservice.asmx/GetStudentNames",
            data: "{'prefixText':'" + request.term + "'}",
            dataType: "json", 
            success: function (data) {
           var regex = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + request.term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi");
                response($.map(data.d, function (item) {
                    return {
                    label: item.split('|')[0].replace(regex, "<Strong>$1</Strong>"),
                    val: item.split('|')[1]
                    }
                }))
            },

            failure: function (response) {
                ServiceFailed(result);
            }
        });
    },
    select: function (event, ui) {
     txtStudent(ui.item.val, ui.item.label); //Student name and …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-ui jquery-autocomplete

22
推荐指数
2
解决办法
2万
查看次数

Javascript:使用<b>标记突出显示字符串的一部分

我试图通过<b>在匹配的子字符串周围插入标签来突出显示字符串中的匹配项.例如,如果查询是"cat",则:

"I have a cat."
Run Code Online (Sandbox Code Playgroud)

应成为:

"I have a <b>cat</b>."
Run Code Online (Sandbox Code Playgroud)

同样,如果查询是"堆栈溢出",则:

"Stack Overflow is great."
Run Code Online (Sandbox Code Playgroud)

应成为:

"<b>Stack Overflow</b> is great."
Run Code Online (Sandbox Code Playgroud)

换句话说,我必须保留原始字符串的大小写,但在匹配时不区分大小写.

到目前为止我尝试的一件事是:

var regex = new RegExp('(' + query + ')', 'i');
return strResult.replace(regex, '<b>$1</b>');
Run Code Online (Sandbox Code Playgroud)

但是,如果查询中有任何括号,这会导致运行时异常,并且我认为尝试转义所有可能的正则表达式字符会太麻烦.

html javascript regex

5
推荐指数
1
解决办法
2452
查看次数

Vue.js:如何使动态创建的HTML使用作用域的CSS?

精简版:

我在组件的方法中使用HTML生成一个字符串,我无法弄清楚如何使用作用域CSS来设置HTML样式,因为它缺少作用域的数据属性.

版本略长:

我有一个名为highlight的函数,它接受一个字符串并返回一个HTML字符串,其中突出显示所有出现的搜索词,意思是用a包围<span class="match">.但是,由于我是在字符串中手动执行此操作,因此该跨度不会获得我的Vue组件中的作用域CSS需要工作的特殊数据属性,因此我对这些匹配进行样式设置的唯一方法是创建我的CSS没有范围,我不想这样做.是否有更多Vue特定的方式让我这样做?该函数如下所示:

// Source: http://stackoverflow.com/a/280805/2874789
function highlight(data, search) {
    return data.replace(
      new RegExp("(" + preg_quote(search) + ")", 'gi'),
      "<span class=match>$1</span>"
    );
}
Run Code Online (Sandbox Code Playgroud)

(preg_quote只是一个逃避需要转义的东西的函数)

谢谢!

javascript vue.js vue-component vuejs2

5
推荐指数
2
解决办法
1017
查看次数

"str.replace(specials, "\\$&amp;")" 中的 \\$&amp; 是什么意思?

我指的是JavaScript 中不区分大小写字符串替换的代码

RegExp.escape = function(str) 
{
  var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\
  return str.replace(specials, "\\$&");
}
Run Code Online (Sandbox Code Playgroud)

什么\\$&意思?

我认为\\逃避这个\角色。然后$&,我认为应该$1匹配第一场比赛?tho$1不能正常工作

javascript regex

4
推荐指数
1
解决办法
1543
查看次数

用javascript计算点数返回一半

我写了一个小函数来计算字符串中字符的出现次数.它工作得很好.

直到我试图计算点数,它一直给我一半的数字.我究竟做错了什么?我是不是以正确的方式逃脱了点?

function count(s1, letter) {
    return (s1.length - s1.replace(new RegExp(letter, "g"), '').length) / letter.length;
}

var loc = 'http://www.domain.com/page' // I'm actually using window.location.href in practice.

var someStringWithDots = 'Yes. I want. to. place a. lot of. dots.';

var somestring = 'abbbcdefg';

count(somestring, 'b');
//returns 3 - correct

count(someStringWithDots, '\\.');
//returns 3 - incorrect

count(loc, '\\.');
//returns 1 - incorrect
Run Code Online (Sandbox Code Playgroud)

javascript regex string

2
推荐指数
1
解决办法
6814
查看次数

jquery .html()取代区分大小写

我正在尝试使用Jquery构建字符串搜索.我的页面包含包含文本的段落标记的数量.我的代码如下:

$("#search_button").click(function(event){
var keyword = $("#searchkeyword").val();
var paras = $("p:contains('" + keyword + "')").each(function(){
$(this).html(
$(this).html().replace( keyword ,'<span style=color:red>  "' + keyword + '" </span>')
);
});
$('#search_results').html(paras);
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

搜索工作正常.我遇到html.replace()的问题,它只替换了确切的大小写匹配单词.假设我搜索单词"apple",html.replace()将仅替换字符串,如果文本包含单词"apple"但如果我搜索"Apple",搜索仍然有效但在那种情况下html.replace( )不起作用,因为字符串包含单词"apple"而不是"Apple".如何在我的代码中删除html.repalce的区分大小写?

html string jquery replace

2
推荐指数
2
解决办法
7330
查看次数