我想在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中替换字符串中所有字符串/字符实例的最快方法是什么?A while,a for-loop,正则表达式?
我有一个字符串,让我们说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正则表达式:
function FindString(input) {
var reg = new RegExp('' + input + '');
// [snip] perform search
}
但是当用户输入包含一个?或*因为它们被解释为正则表达式特殊时,正则表达式将无法正常工作.实际上,如果用户将不平衡(或[字符串放入其中,则正则表达式甚至无效.
什么是正确转义所有特殊字符以在正则表达式中使用的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)
但最终将所有字符串替换为空格.
我只想用任何可能的字符串创建一个正则表达式.
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.我觉得我不需要自己编写,那里必须有标准的东西.谢谢!
我有一个包含多个逗号的字符串,字符串替换方法只会更改第一个:
var mystring = "this,is,a,test"
mystring.replace(",","newchar", -1)
Run Code Online (Sandbox Code Playgroud)
结果:"thisnewcharis,a,test"
文档指出默认值替换all,并且"-1"也表示替换all,但是不成功.有什么想法吗?
我有一个包含多个空格的字符串.我想用加号替换它们.我以为我可以用
var str = 'a b c';
var replaced = str.replace(' ', '+');
Run Code Online (Sandbox Code Playgroud)
但它只取代了第一次出现.如何让它替换所有出现的?
我有这个
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
它错过了最后的'/'我不明白为什么.
每个JS意见领袖都说扩展原生对象是一种不好的做法.但为什么?我们是否获得了性能?他们是否害怕有人以"错误的方式"做到这一点,并添加了可枚举的类型Object,几乎破坏了任何对象上的所有循环?
以TJ Holowaychuk的should.js为例.他增加了一个简单的getter来Object,一切工作正常(来源).
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 ×10
string ×5
replace ×4
regex ×3
escaping ×1
jquery ×1
prototype ×1
substitution ×1