【问题标题】:change part of the string with case sensitive更改字符串的一部分,区分大小写
【发布时间】:2012-12-12 19:37:52
【问题描述】:

我想搜索一个不区分大小写的字符串,但是用原始字符串的大小写字母更改子字符串。

var mystring = "FiRst Last";
var term = "first";  // it could be "FIRST" or fIRST

var re = new RegExp("^" + term, "i") ;
//option 1
//var t = mystring.replace(re,"<span style='font-weight:bold; color:Blue;'>" + term + "</span>");
//option 2
var t = mystring.replace(re,term.bold().fontcolor("Blue"));

上面的代码给出了蓝色的 first LAST,但是我希望它是 FiRst LAST 作为 mystring 的大小写顺序

也许可以使用 indexof() 方法,但可能有一种简单有效的方法。

【问题讨论】:

标签: javascript jquery


【解决方案1】:
var querystr = 'first';
var output = "FiRst Last";
var reg = new RegExp(querystr, 'gi');
var final_str = output.replace(reg, function(str) {return str.bold().fontcolor("Blue")});

查看以下链接...

Javascript: highlight substring keeping original case but searching in case insensitive mode

user113716 提供的解决方案可能会有所帮助...

【讨论】:

  • 使用土耳其字符处理此代码的任何方式。例如:querystr ='istanbul' output = "İstanbul Turkey"
【解决方案2】:

只需将捕获组与您的第一个选项一起使用

var str = "FiRst Last";
var term = "first";

var t = str.replace( /(first)/i, "<span style='font-weight:bold; color:Blue;'>$1</span>");

t 现在将包含

"<span style='font-weight:bold; color:Blue;'>FiRst</span> Last"

【讨论】:

    猜你喜欢
    • 2022-11-22
    • 1970-01-01
    • 2016-01-26
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    相关资源
    最近更新 更多