Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式客户端脚本_Javascript_Servicenow - Fatal编程技术网

Javascript 正则表达式客户端脚本

Javascript 正则表达式客户端脚本,javascript,servicenow,Javascript,Servicenow,我有一个onChange客户端脚本,它应该将逗号(,)更改为点 当您在字段中写入逗号时,它可以正常工作,但如果您写入一个点,它将删除它,因此1.1变为11 有人知道为什么吗 function onChange(control, oldValue, newValue, isLoading, isTemplate) { if (isLoading || newValue === '') { return; } var fte = g_form.getValu

我有一个onChange客户端脚本,它应该将逗号(,)更改为点

当您在字段中写入逗号时,它可以正常工作,但如果您写入一个点,它将删除它,因此1.1变为11

有人知道为什么吗

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }

    var fte = g_form.getValue('fte');

    if(fte.indexOf(',') > -1){
        var newStr = fte.replace(',','.');

        g_form.setValue('fte', newStr);
    }       
}
可以使用split()和join()函数替换字符串中的字符

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }

    var newStr = g_form.getValue('fte').split(',').join('.');

    g_form.setValue('fte', newStr);
}

在客户端脚本中尝试以下操作:

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }

    g_form.setValue( 'fte',  g_form.getValue( 'fte' ).replace( /,/g, '.' ) );
}

这里没有使用正则表达式,只是字符串替换。你确定这段代码替换了它吗?为什么要检查字符串中是否有
?简单地更换它。最后一个IF有什么意义?顺便说一句,replace(',','。)将只替换第一个匹配的匹配项。您应该使用
ftw.replace(/,/g,'.')
替换所有匹配的occurrences@Justinas不小心复制了两次代码…您是否使用了一些前端框架?因为函数调用看起来像某种角度观察者,而不是简单的
。你们能提供这样一个有问题的工作片段吗?不幸的是,这不起作用。获取以下错误:“onChange脚本错误:RangeError:最大调用堆栈大小超出了函数onChange_resource_plan_fte_1(控件、oldValue、newValue、isLoading、isTemplate){if(isLoading | | newValue==''{return;}var fte=g_form.getValue('fte');var newStr=fte.split('、').join('.');g| form.setValue('fte',newStr)}”如果我将1.1 newStr改为11,是否可以尝试通过在“var newStr=fte.split(',').join(');”之后添加console.log(“newStr”,newStr)进行调试