【问题标题】:Insert special character in value在值中插入特殊字符
【发布时间】:2023-03-10 14:26:01
【问题描述】:

我在 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, '.$&'); }

标签: javascript regex input textfield


【解决方案1】:

看来您可以简单地将每个 * 替换为它自己并在前面使用 .

getSubmitValue: function () { 
  return this.getValue().replace(/\*/g, '.$&'); 
}

请注意,/\*/g 正则表达式匹配所有出现的 *(已转义,因为它是一个特殊的正则表达式元字符)并且替换模式中的 $& 指的是整个匹配项。

【讨论】:

    猜你喜欢
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 2011-02-24
    • 2019-08-24
    • 1970-01-01
    相关资源
    最近更新 更多