Javascript:测试regex并赋值给变量,如果它在一行中匹配
Javascript: test regex and assign to variable if it matches in one line
测试一个正则表达式是否匹配,如果匹配则赋值给一个变量,如果不匹配则赋值给一个默认值。我目前正在做以下事情:
var test = someString.match(/some_regex/gi);
var result = (test) ? test[0] : 'default_value';
我想知道是否有任何方法可以用一行代码在JS中做同样的事情。
澄清:我不是想让我的代码更小,而是让它更清晰,在我定义了一些变量的地方,像这样:
var foo = 'bar',
foo2 = 'bar2',
foo_regex = %I want just one line here to test and assign a regex evaluation result%
您可以使用OR运算符(||
):
var result = (someString.match(/some_regex/gi) || ['default_value'])[0];
如果操作数为真,则返回第一个操作数,否则返回第二个操作数。因此,如果someString.match(/some_regex/gi)
是假的(即不匹配),它将使用['default_value']
代替。
可能会变得有点粗糙。在这种情况下,您仍然可以在初始化多个变量时干净地执行此操作:
var foo = 'bar',
foo2 = 'bar2',
test = someString.match(/some_regex/gi),
result = test ? test[0] : 'default_value';
相关文章:
- Javascript在实现时似乎跳过了一行(如果count==1)
- 如果.htaccess文件中只写了一行代码,那么我所有的css和js都不起作用,如何修复它
- Javascript 一行 If..还..否则如果语句
- 如果只剩下一行,则禁用按钮
- 如果最后一行已经显示,如何防止jQuery加载更多停止函数
- 如果有足够的空间,请将 DIV 堆叠在一行中
- 如果文本不适合同一行,则不显示全部
- jqxTreeGrid如果我单击一行中的特定单元格,则禁用对该行的选择/取消选择
- Titanium-JavaScript:如果所选数组中存在某一行的值,如何设置该行的复选标记
- 激活输入的复选框有效,但如果一行输入重复,它的行为会很奇怪
- jQuery-如果元素在同一行,则具有不同的事件
- 如果一行包含Angularjs的特定项目,则高亮显示该行
- 如果复选框被禁用,则通过表中的一行
- 如果我选择上一行日期不更新,并且当单击删除时,顶部总结果值没有减少,则JQuery克隆单击添加更多按钮
- 如果出现警告框,我不希望向表中添加一行
- Javascript:测试regex并赋值给变量,如果它在一行中匹配
- 如果一个单词作为空格,把下一个单词放到另一行
- 如果选择了一行,只显示一些html
- 如果文本块中包含一个特定的字符串,使用jQuery删除第一行
- JavaScript:在一行中搜索字符串,如果找到字符串就删除行