javascript转换为带分数的除法符号

javascript转换为带分数的除法符号,javascript,regex,Javascript,Regex,我正在尝试将“/”转换为÷。。。当没有分数的时候我可以这么做 30÷2项工程 30 1/2÷2不起作用 30 1/2÷2 1/2不起作用 我希望它能够在÷之前或之后使用或不使用空格 这是我到目前为止所拥有的,但我拥有多个/它们都被更改为÷ var divSign=“\u00f7”; if(divLength==1){ 如果(!this.value.match(/\s\d\/\d?/)){ var updateText=this.value.replace(/(\/)/,divSign);

我正在尝试将“/”转换为÷。。。当没有分数的时候我可以这么做

30÷2项工程

30 1/2÷2不起作用

30 1/2÷2 1/2不起作用

我希望它能够在÷之前或之后使用或不使用空格

这是我到目前为止所拥有的,但我拥有多个/它们都被更改为÷


var divSign=“\u00f7”;
if(divLength==1){
如果(!this.value.match(/\s\d\/\d?/)){
var updateText=this.value.replace(/(\/)/,divSign);
if(updateText!=此.value){
this.value=updateText;
}
}
}
if(divLength==2){
if(此.value.match(/\d\/\d?/)){
var updateText=this.value.replace(/(\/)/,divSign);
if(updateText!=此.value){
this.value=updateText;
}
}

}
您需要在Regexp上使用
g
标志,这样它就可以在同一个字符串上多次替换所需的字符

var divSign=“\u00f7”;
const test1=“30/2”;
const test2=“30 1/2/2”
const test3=“30 1/2/2 1/2”
const res1=test1.replace(//\//g,divSign);
const res2=test2.replace(//\//g,divSign);
const res3=test3.replace(//\//g,divSign);
控制台日志(res1);
console.log(res2);

控制台日志(res3)终于找到了答案。。。可能是更好的方法,但它很有效

我所做的改变

if(divLength==2)
to
if(divLength==2&&!this.value.match(/\u00f7/)

var updatedText=this.value.replace(/(\/)/,divSign);
to
var updatedText=this.value.replace(/\/([^\/]*)$/,divSign);


请添加您的html并显示
divLength
的来源。提供一个&最好创建一个复制issue@admcfajn谢谢您的建议…我添加了html,但不幸的是,我从未使用过代码段,所以我不确定还要添加什么…我会尝试解决它。@admcfajn我添加了一个JSFIDLE链接…t谢谢你的回答,但这正是我想要避免的…它应该看起来像30 1/2÷2…而不是30 1÷2÷2。我的不好我的解释不是最好的。