我有这个字符串:
"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中使用正则表达式在另一个字符串中搜索字符串的出现,如下所示:
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)
这不起作用,因为?字符....我试图逃避它\,但这也不起作用.有没有其他方式可以使用?字面而不是特殊字符?
你可以帮我突出显示自动完成文本框中输入的单词.我已经填充了自动完成的单词,我只需要突出显示单独输入的单词.我是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) 我试图通过<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生成一个字符串,我无法弄清楚如何使用作用域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 中不区分大小写字符串替换的代码?:
RegExp.escape = function(str)
{
var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\
return str.replace(specials, "\\$&");
}
Run Code Online (Sandbox Code Playgroud)
什么\\$&意思?
我认为\\逃避这个\角色。然后$&,我认为应该$1匹配第一场比赛?tho$1不能正常工作
我写了一个小函数来计算字符串中字符的出现次数.它工作得很好.
直到我试图计算点数,它一直给我一半的数字.我究竟做错了什么?我是不是以正确的方式逃脱了点?
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) 我正在尝试使用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的区分大小写?