相关疑难解决方法(0)

如何在正则表达式中使用变量?

我想在JavaScript中创建一个String.replaceAll()方法,我认为使用RegEx将是最简洁的方法.但是,我无法弄清楚如何将变量传递给RegEx.我已经可以做到这一点,它将用"A"替换所有"B"的实例.

"ABABAB".replace(/B/g, "A");
Run Code Online (Sandbox Code Playgroud)

但我想做这样的事情:

String.prototype.replaceAll = function(replaceThis, withThis) {
    this.replace(/replaceThis/g, withThis);
};
Run Code Online (Sandbox Code Playgroud)

但显然这只会替换文本"replaceThis"...所以如何将此变量传递给我的RegEx字符串?

javascript regex

1250
推荐指数
13
解决办法
68万
查看次数

替换字符串中所有字符实例的最快方法

在JavaScript中替换字符串中所有字符串/字符实例的最快方法是什么?A while,a for-loop,正则表达式?

javascript string replace

619
推荐指数
11
解决办法
71万
查看次数

如何在JavaScript中替换特定索引处的字符?

我有一个字符串,让我们说Hello world,我需要在索引3处替换char.如何通过指定索引来替换char?

var str = "hello world";
Run Code Online (Sandbox Code Playgroud)

我需要类似的东西

str.replaceAt(0,"h");
Run Code Online (Sandbox Code Playgroud)

javascript string replace character-replacement

501
推荐指数
16
解决办法
48万
查看次数

用于Javascript正则表达式的转义字符串

可能重复:
Javascript中是否有RegExp.escape函数?

我正在尝试根据用户输入构建一个javascript正则表达式:

function FindString(input) {
    var reg = new RegExp('' + input + '');
    // [snip] perform search
}

但是当用户输入包含一个?*因为它们被解释为正则表达式特殊时,正则表达式将无法正常工作.实际上,如果用户将不平衡([字符串放入其中,则正则表达式甚至无效.

什么是正确转义所有特殊字符以在正则表达式中使用的javascript函数?

javascript regex escaping

469
推荐指数
1
解决办法
27万
查看次数

如何使用JavaScript替换字符串中的所有点

我想替换.JavaScript字符串中所有出现的dot()

例如,我有:

var mystring = 'okay.this.is.a.string';
Run Code Online (Sandbox Code Playgroud)

我想得到:okay this is a string.

到目前为止我试过:

mystring.replace(/./g,' ')
Run Code Online (Sandbox Code Playgroud)

但最终将所有字符串替换为空格.

javascript string replace

410
推荐指数
7
解决办法
51万
查看次数

Javascript中是否有RegExp.escape函数?

我只想用任何可能的字符串创建一个正则表达式.

var usersString = "Hello?!*`~World()[]";
var expression = new RegExp(RegExp.escape(usersString))
var matches = "Hello".match(expression);
Run Code Online (Sandbox Code Playgroud)

有内置的方法吗?如果没有,人们会用什么?Ruby有RegExp.escape.我觉得我不需要自己编写,那里必须有标准的东西.谢谢!

javascript regex

404
推荐指数
10
解决办法
10万
查看次数

JavaScript - 替换字符串中的所有逗号

我有一个包含多个逗号的字符串,字符串替换方法只会更改第一个:

var mystring = "this,is,a,test"
mystring.replace(",","newchar", -1)
Run Code Online (Sandbox Code Playgroud)

结果:"thisnewcharis,a,test"

文档指出默认值替换all,并且"-1"也表示替换all,但是不成功.有什么想法吗?

javascript string replace substitution

348
推荐指数
3
解决办法
67万
查看次数

用'+'替换字符串中的所有空格

我有一个包含多个空格的字符串.我想用加号替换它们.我以为我可以用

var str = 'a b c';
var replaced = str.replace(' ', '+');
Run Code Online (Sandbox Code Playgroud)

但它只取代了第一次出现.如何让它替换所有出现的?

javascript string

317
推荐指数
8
解决办法
41万
查看次数

为什么javascript在使用replace时只替换第一个实例?

我有这个

 var date = $('#Date').val();
Run Code Online (Sandbox Code Playgroud)

这得到文本框中的值,看起来像这样

2009/12/31

现在我就这样做了

var id = 'c_' + date.replace("/", '');
Run Code Online (Sandbox Code Playgroud)

结果是

c_1231/2009

它错过了最后的'/'我不明白为什么.

javascript jquery

136
推荐指数
3
解决办法
10万
查看次数

为什么扩展本机对象是一种不好的做法?

每个JS意见领袖都说扩展原生对象是一种不好的做法.但为什么?我们是否获得了性能?他们是否害怕有人以"错误的方式"做到这一点,并添加了可枚举的类型Object,几乎破坏了任何对象上的所有循环?

TJ Holowaychukshould.js为例.他增加了一个简单的getterObject,一切工作正常(来源).

Object.defineProperty(Object.prototype, 'should', {
  set: function(){},
  get: function(){
    return new Assertion(Object(this).valueOf());
  },
  configurable: true
});
Run Code Online (Sandbox Code Playgroud)

这真的很有道理.例如,可以扩展Array.

Array.defineProperty(Array.prototype, "remove", {
  set: function(){},
  get: function(){
    return removeArrayElement.bind(this);
  }
});
var arr = [0, 1, 2, 3, 4];
arr.remove(3);
Run Code Online (Sandbox Code Playgroud)

是否有任何反对扩展本机类型的论据?

javascript prototype prototypal-inheritance

121
推荐指数
7
解决办法
3万
查看次数