如何删除“#&引用;从javascript中使用正则表达式的颜色代码?
我想在javascript中使用正则表达式从颜色代码中删除“#”字符。我试过一个,但我的脚本不起作用。。。请一些人看一下并更正我的代码如何删除“#&引用;从javascript中使用正则表达式的颜色代码?,javascript,regex,Javascript,Regex,我想在javascript中使用正则表达式从颜色代码中删除“#”字符。我试过一个,但我的脚本不起作用。。。请一些人看一下并更正我的代码 <html> <script> var input = "#a478ff"; var color = input.match(/([a-f]|[A-F]|[0-9])\b*/gi); alert(color); </script> </html> var输入
<html>
<script>
var input = "#a478ff";
var color = input.match(/([a-f]|[A-F]|[0-9])\b*/gi);
alert(color);
</script>
</html>
var输入=“#a478ff”;
var color=input.match(/([a-f]|[a-f]|[0-9])\b*/gi);
警报(颜色);
谢谢。不需要正则表达式,只需使用
replace()
:
或者可以使用子字符串:
var input = "#a478ff";
var color = input.substring(1);
对于那些可能不存在
#
的情况,替换()
方法更可靠,因为子字符串()
将始终“删除”第一个字符;而replace()
将只替换它找到的内容。但是如果您确实想要一个regexp,下面是正确的:
var color = input.match(/[A-F0-9]*\b/i);
if (color) { alert(color[0]) };
如果你知道它在那里,为什么不直接使用子字符串呢?或者,你是在试图抓住可能不存在的案例吗?我想我真的不明白为什么需要正则表达式。出于好奇,您如何指定它必须匹配3或6个字符的字符串?我知道如何指定范围(
{3,6}
),但不仅仅是3或6=/如果输入是“#123456789”,为什么不呢?他只是想跳过“#”这个词。因为它不是一个有效的十六进制色码(承认这不构成问题的一部分,但即便如此,我认为它还是相当重要的?/\b((?:[a-f0-9]{3}){1,2})\b/
将匹配3或6个十六进制数字谢谢!和一个衷心的加一!=)我更喜欢.slice()
四个字符以下;-)
var color = input.match(/[A-F0-9]*\b/i);
if (color) { alert(color[0]) };