我在 ExtJS 中有一个面板表单,里面有一个文本字段,我试图在此文本字段中的 *
之前插入一个 .
符号。我有一个按钮,可以将值从此文本字段发送到服务器并返回结果。
在我的代码中,我检查字符串是否包含 *
符号,然后将此文本字段中的 .
插入其中。
我现在拥有的示例:我在文本字段中输入 *test*
我的代码将其转换为 *test.*
。我需要的是 .*test.*
.
如果我在文本字段中输入 *t*st*
,我需要 .*t.*st.*
作为结果。
如何在值字符串中的每个 *
符号之前插入 .
符号?
fieldLabel: 'name',
name: 'name',
submitValue: true,
enableKeyEvents: true,
getSubmitValue: function () {
var value = this.getValue();
var format = /[*]+/;
let valTrimmed = value.slice(0, value.length -1);
var ts = '';
if(format.test(value)){
ts = valTrimmed + '.*';
return ts;
}
return value;
}
最佳答案
看来您可以简单地替换每个 *
与自身和 .
在前面使用
getSubmitValue: function () {
return this.getValue().replace(/\*/g, '.$&');
}
请注意/\*/g
正则表达式匹配 *
的所有出现(转义,因为它是一个特殊的正则表达式元字符)和 $&
替换模式中指的是整场比赛。
关于javascript - 在值中插入特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65491455/