我有这个字符串:
"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上面字符串中的第一次出现.如何更换所有出现的内容?
有什么区别
alert("abc".substr(0,2));
Run Code Online (Sandbox Code Playgroud)
和
alert("abc".substring(0,2));
Run Code Online (Sandbox Code Playgroud)
他们似乎都输出"ab".
如何在另一个字符串的特定索引处插入字符串?
var txt1 = "foo baz"
Run Code Online (Sandbox Code Playgroud)
假设我想在"foo"之后插入"bar"我该如何实现?
我想到了substring(),但必须有一个更简单,更直接的方式.
每个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)
是否有任何反对扩展本机类型的论据?
我正在寻找一种方法来替换用户输入中"更正"引号的引号.
这个想法
这里有一个简要说明原则的片段:
对于引号,"正确"的引号有开启“和关闭”,因此需要以良好的方式进行替换.
$('#myInput').on("keyup", function(e) {
// The below doesn't work when there's no space before or after.
this.value = this.value.replace(/ "/g, ' “');
this.value = this.value.replace(/" /g, '” ');
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="myInput"></textarea>Run Code Online (Sandbox Code Playgroud)
但上述情况并非在所有情况下都有效.
例如,当"引用的单词"位于句子或行的开头或结尾时.
例子
可能的输入(小心,法语里面!:)):
⋅我很开心!Çayest,j'ai"osé",et mon"âmesœur"étaitaurendez-vous ...
⋅标语上写着:"有些文字"有些文字"有些文字".并"注意这里的空间!"
⋅"Inc"或"rect"quo"tes should"不得更换.
⋅我说:"如果它也适用于'单身',我会更喜欢它!"
正确的输出:
⋅我"快乐"!Çayest,j'ai"osé",et mon"âmesœur"étaitaurendez-vous ...
⋅标志上写着:"有些文字"有些文字"有些文字."和"注意这里的空间!"
⋅"Inc "或"rect"quo"tes应"不应被替换".
⋅我说:"如果它也适用于'单身',我会更喜欢它!"
输出不正确:
⋅标志上写着:"有些文字"有些文字"有些文字."和[...]
为什么不正确:
→报价单的末尾和结束标记之间不应有空格.
→在右引号和单词之间应该有一个空格.
→单词和开头引号之间应该有一个空格.
→开头引号与其报价之间不应有空格.
需要
在所有这些情况下,如何才能有效和轻松地替换报价?
如果可能的话,我也希望解决方案能够"纠正"引号,即使我们在整个句子输入后添加它们也是如此.
请注意,我不能(不能)在正则表达式中使用单词分隔符"\ b",因为"重音字符,例如"é"或"ü"不幸被视为单词分隔符."(来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)
当然,如果没有其他解决方案,我会想出一个我认为是单词分隔符的列表并在正则表达式中使用它.但我更喜欢有一个很好的工作功能而不是列表!
任何想法将不胜感激.
是否有一个函数可以在特定索引处替换字符串中的字符串一次?例:
var string1="my text is my text";
var string2="my";
string1.replaceAt(string2,"your",10);
Run Code Online (Sandbox Code Playgroud)
结果输出将是"我的文字是你的文字",或者:
var string1="my text is my text";
var string2="my";
string1.replaceAt(string2,"your",0);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,结果将是"你的文字是我的文字".
我似乎无法弄清楚如何用Javascript中的字符串产生波浪。
规则:
预期结果:
wave("hello") => ["Hello", "hEllo", "heLlo", "helLo", "hellO"]
wave (" h e y ") => [" H e y ", " h E y ", " h e Y "]
wave ("") => []
Run Code Online (Sandbox Code Playgroud)
据我所知。当前的代码会给我一个答案["hello", "hello", "hello", "hello", "hello"]。我正在考虑使用第二个for循环并以某种方式将每个新字母大写,但是我很困惑。如果答案可以避免在loop内部使用loop,我也将不胜感激O(n^2)。由于BIG O可伸缩性。
const wave = (str) => {
if(typeof str === 'string' && str === str.toLowerCase()){
for (let index = 0; index < str.length; index++) {
array.push(str);
}
for (let index = …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个 javascript 程序,它接受一个字符串并将每个单词的第一个字母大写,并使所有其他字符小写。
function titleCase(str) {
str = str.toLowerCase();
var array = str.split(" ");
for(var i =0; i< array.length ; i++){
array[i][0] = array[i].charAt(0).toUpperCase();
}
var finalString = array.join(" ")
return finalString ;
}
console.log(titleCase("I'm a little tea pot"));Run Code Online (Sandbox Code Playgroud)
由于某种原因array[i].charAt(0).toUpperCase();不会将其值传递给array[i][0]. 这最终使它返回仅包含小写字母的字符串,而不是每个单词的第一个字母都大写。
function maskify(cc) {
var dd = cc.toString();
var hash = dd.replace((/./g), '#');
for (var i = (hash.length - 4); i < hash.length; i++) {
hash[i] = dd[i];
}
return hash;
}
Run Code Online (Sandbox Code Playgroud)
我试图用#除了最后一个4之外的所有字符替换.为什么它不起作用?
是否可以用字符串替换特定位置的字符
让我们说有一个字符串: "I am a man"
我想用字符串替换7处的字符"wom"(不管原始字符是什么).
最终结果应该是: "I am a woman"