我试图找到一种在javascript语句中使用空格和连字符的方法。
<script type='text/javascript'>
<!--
var {word} = '{word}';
if(
{word} == 'hellothere' ||
{word} == 'hello there' ||
{word} == 'hello-there'
){
document.write('blah blah');
}
else {
document.write('');
}
</script>
以上代码的设计使得每当单词hello there
时,都会显示某个内容。
但是,当单词hello there
之间有空格时,它不起作用。
我尝试使用连字符:hello-there
,但这也不起作用。
只有当我用一个单词写作时才会有效:hellothere
或HelloThere
以便更好地阅读。
这是为什么?它有办法吗?
答案 0 :(得分:2)
假设(因为您没有表现出来){word}
已扩展为hello there
,您的代码将变为:
var hello there = 'hello there';
if(
hello there == 'hellothere' ||
hello there == 'hello there' ||
hello there == 'hello-there'
){
document.write('blah blah');
}
else {
document.write('');
}
正如一些评论者指出的那样,变量的名称中不能有空格。
为什么需要在变量内容后命名变量?这个版本可以正常工作:
var myword = '{word}';
if(
myword == 'hellothere' ||
myword == 'hello there' ||
myword == 'hello-there'
){
然后,您可以重写if
以考虑空格和破折号:
if (myword.match(/^hello[ \-]*there$/i)) {
答案 1 :(得分:0)
我认为你正在寻找
if ({word}.replace(/-| /g, "") == 'hellothere') { … }
(尽管有明显的语法问题)。在比较它之前,它只删除{word}
中的所有连字符和空格。如果您想使其不区分大小写,请添加.toLowerCase()
。