【问题标题】:Javascript / jQuery search for letter in stringJavascript / jQuery 搜索字符串中的字母
【发布时间】:2013-04-04 13:29:09
【问题描述】:

我正在使用 JS / jQuery(jQuery 新手),我有一个包含数学问题的字符串,包括一个变量。 (我正在创建一个函数来解决基本代数)。即:

var $problem = "x+5=11";
// Take off any whitespace from user input
$problem = $problem.replace(/\s+/g,"");
// Split problem into two parts
$problem = $problem.split("=");

现在我需要确定哪个部分包含变量。 在这个例子中是

$problem[0] // This stores "x+5"

我坚持的是变量可以是任何字母,而不仅仅是 x,所以我不能只搜索 x。可能是:a、b、A、x、z、Y。

【问题讨论】:

  • 你需要测试正则表达式/[a-zA-Z]+/
  • 我讨厌正则表达式 :( 它让我很困惑。但如果这是我唯一的选择,我必须使用它!
  • 你想用x+5做什么?可能您想再次将其与x5 分开
  • @ArunPJohny 是的,我将函数的步骤写在纸上,这是确定数组的哪个部分具有变量后的下一步。例如,我不想尝试将 11 拆分为另一个数组,因为它只有一个数字。
  • 那么你要检查LHS或RHS是否有变量对吗?

标签: javascript jquery string search letter


【解决方案1】:

您可以使用正则表达式测试任何具有字母表的变量

if(/[a-zA-Z$][a-zA-Z$_0-9]*/.test($problem[0])){
    //left part has a variable
}

【讨论】:

  • 普通代数变量名也可以包含数字
  • @Ejay 在这种情况下我们可以改进正则表达式
  • @Ejay in js 我认为变量可以以字母开头或$
  • 这更像是编程语言变量命名约定 :) 他说的是代数
【解决方案2】:
'x+5'.split(/[\W]+/g)

'xyx-2a*yb+5'.split(/[\W]+/g)

【讨论】:

    【解决方案3】:

    您可以检查字符串中是否包含字母,如下所示:

        var str = "x+1";
        if (str.match(/[a-zA-Z]/g)) {
            alert("true");
            }
        else {
    
            alert("false");
        }
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-13
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 2021-05-17
      相关资源
      最近更新 更多