允许使用正则表达式的文本字段中的某些字符
Allow certain characters in text field with regex
我已经做了很长时间的研究,如何使用正则表达式只允许在文本字段中允许三个特定的字符,但我无法完善解决方案。
我尝试的方法是替换任何不是+
、(
、)
、 (空格)或数字的字符。
我尝试过的正则表达式如下:
(^['+'(')'s0-9]+)
但不起作用。我不知道我错了。
如果字符串包含+
的字符不是(
、)
、0-9
或
[^'d)(+ ]
之间的数字
然后在我的Javascript中,我执行以下操作:
var $text = $('#text_field');
if(0 < $text.length)
{
$text.on(
'keyup',
function(e)
{
var $val = $(this).val();
$val = $val.replace(/(^['+'(')'s0-9]+)/, '');
$(this).val($val);
}
);
}
但不幸的是,这不起作用。
有人可以帮我吗?
我也尝试了以下方法:
^(^['+'(')'s0-9]+)$
(^['+'(')'s'd]+)
^(^['+'(')'s'd]+)$
但仍然不起作用。
您应该将^
移动到字符类中。
那是
/[^'d)(+ ]/
-
^
否定字符类。匹配除类中的字符以外的任何字符。
在字符类外部,replace(/([^'+'(')'s0-9]+)/g, "")
充当锚点,它与字符串的开头匹配。一旦它被移动到字符类中,它就会否定,从而匹配相反的情况。
测试
"asdf123(+123) 1234asdf".replace(/[^'d)(+ ]/g, "");
=> 123(+123) 1234
正则表达式演示
问题是您需要将CC_14放在方括号内。此外,您应该全局运行它,因此CC_15应该可以工作。
相关文章:
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 允许在文本框中使用某些字符
- 根据页面的位置突出显示文本中的字符
- 带静态字符e输入的文本框数字和带javascript的负整数
- 仅IE8 html文本框中的字符
- 必须检查长度,并在文本框中允许一些特殊字符
- 在每个字符输入后,使密码文本框值可见
- 使用提取文本webpack插件时出现意外字符
- 替换与单词'匹配的文本字符;购物车'替换为img图标
- 以纯文本加载的脚本-未声明纯文本文档的字符编码
- Javascript:包括特殊字符的文本选择
- 如何在不通过模型验证的情况下屏蔽文本输入中输入的字符
- 匹配某个字符后所有文本的正则表达式是什么
- 文本区域JavaScript中的字符限制-特殊情况
- 如果文本或值以字符开头,请运行函数
- 更换163;使用javascript从html文本区域中提取字符
- 为什么jQuery正在删除文本的最后一个字符
- 重制版字符文本区域问题
- 字符文本中的字符过多,在 C# 中使用字符串生成器
- 尝试在煎茶面板中使用连字符文本,但不成功