我有以下的onkeyup命令来测试,并删除,信件逗号和美元符号:正则表达式 - 删除美元符号从文本输入
onkeyup="if (/(?:[a-zA-Z]|\s|,|\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"
它适用于一切,除了对美元的迹象。
有人可以帮我吗?
感谢, 惟妙惟肖
我有以下的onkeyup命令来测试,并删除,信件逗号和美元符号:正则表达式 - 删除美元符号从文本输入
onkeyup="if (/(?:[a-zA-Z]|\s|,|\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"
它适用于一切,除了对美元的迹象。
有人可以帮我吗?
感谢, 惟妙惟肖
HTML解释你的反斜线作为逃避的内嵌HTML字符串,而不是正则表达式。以下代码打印$
。
<body onload='alert("\$");'> // prints '$', not '\$'
您需要转义两次,或将正则表达式移出内联html并转换为函数。
我认为正确的答案是\\$
取代\$
,如下:
onkeyup="if (/(?:[a-zA-Z]|\s|,|\\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"
您的字符串被转义,但正则表达式不是。请参阅编辑。 –
如果您正试图清理将任意字符串只是一个数字,你会被替换一切追逐较少的边缘情况这不是一个数字(假设你想要一个整数)和空字符串。
this.value = this.value.replace(/[^0-9]/, '');
这实际上似乎对我来说是正确的,但正则表达式可以更简单:'/ [a-z \ s,$]/ig',除非我误解了你。 http://jsfiddle.net/skM5N/3/ –
适用于我......尝试将'this.value'倾销至控制台并查看内容。 –
只需在没有测试的情况下运行替换就可以降低成本。 –