在JavaScript中用下划线替换空格?
我试图用这段代码将空格替换为u,它适用于字符串中的第一个空格,但所有其他空格实例保持不变。有人知道为什么吗在JavaScript中用下划线替换空格?,javascript,string,Javascript,String,我试图用这段代码将空格替换为u,它适用于字符串中的第一个空格,但所有其他空格实例保持不变。有人知道为什么吗 function updateKey() { var key=$("#title").val(); key=key.replace(" ","_"); $("#url_key").val(key); } 尝试。替换(//g,“”) 编辑:或.split(“”)。如果您对REs有反感,请加入(“”) 编辑:: 如果您正在搜索和替换 通过字符串进行静态搜索 和一个静态
function updateKey()
{
var key=$("#title").val();
key=key.replace(" ","_");
$("#url_key").val(key);
}
尝试。替换(//g,“”)代码>
编辑:或.split(“”)。如果您对REs有反感,请加入(“”)
编辑::
如果您正在搜索和替换
通过字符串进行静态搜索
和一个静态替换它更快
使用以下命令执行操作:
.拆分(“匹配”).加入(“替换”)-
这似乎有悖常理,但事实并非如此
大多数情况下都是这样
现代浏览器。(有变化
在适当的地方大大改善
.replace的性能(/match/g,
下一版本中的“替换”)
Firefox-那么前面的声明
这种情况不会持续很久。)
试试这个:
key=key.replace(/ /g,"_");
这将进行全局查找/替换
回答普拉桑纳的以下问题:
如何用替换多个空格
Javascript中的单个空格
您可以使用不同的正则表达式替换相同的函数replace
。空格的表达式是\s
,而“1次或多次”的表达式是+
加号,因此您只需将Adam的答案替换为以下内容:
key=key.replace(/\s+/g,"_");
我为它创建了JS性能测试你可以试试这个
var str = 'hello world !!';
str = str.replace(/\s+/g, '-');
它甚至会用单个“-”替换多个空格。我知道这很旧,但我没有看到任何人提到扩展字符串原型
String.prototype.replaceAll = function(search, replace){
if(!search || !replace){return this;} //if search entry or replace entry empty return the string
return this.replace(new RegExp('[' + search + ']', 'g'), replace); //global RegEx search for all instances ("g") of your search entry and replace them all.
};
将空格替换为下划线
var str = 'How are you';
var replaced = str.split(' ').join('_');
输出:使用替换,您感觉如何
var text='Hello World';
新建文本=文本。替换(“”,“”);
console.log(新文本)代码>
const updateKey=key=>console.log(key.split(“”).join(“”));
updateKey(“你好世界”)代码>替换所有引用
您要做的是将标题中的所有空格都替换为u。但是当您使用带有字符串匹配的replace
方法(本例中的第一个参数“”)时,它只查找并替换第一个匹配。检查一下。
要替换所有匹配项,可以使用以下3种方法:
在replace方法中使用带有全局标志的regex-当您使用带有/g标志的regex的replace
方法时,它将替换所有
匹配字符串中的匹配项
函数updateKey()
{
var key=$(“#title”).val();
key=key.replace(//g,“”);
$(“#url_key”).val(key);
}
//展示柜
让title=“您的文档标题”;
console.log(title.replace(//g,“”)
没有regexp有什么方法可以做到这一点吗?为什么回答的人没有使用/\s/g?而不是//g
使用/\/g
-两者都使用Javascript。后者也适用于CoffeeScript。截至2015年为。替换(//g,“”)代码>比.split('').join('')
快。浏览这个@Inez的未来用户有一个链接,可以测试split/join和replace的速度。截至2018年底,更换速度明显加快。似乎现在更换是更好的总体选择Kave-什么?虽然并非所有浏览器都是相同的,但平均而言,拆分/连接要好得多。事实上,在许多现代浏览器中,这是一个更好的基调!感谢Inez的设置!一年多之后,现在在Chrome32.0.1700.107中运行上述测试。。str.replace()产生的结果要好得多(快64%),可能值得注意:这也会去除制表符和其他空格。你没有看到有人这样做,因为这是一个糟糕的主意。这将只替换第一个空格,而不是之后的空格