格式化圣经经文引用与正则表达式在javascript

Formatting bible verse reference with regex in javascript

本文关键字:正则表达式 javascript 文引用 格式化 引用      更新时间:2023-09-26

我正在尝试将圣经经文引用等宽,以便单个数字的章节或经文有一个前导空间。

所以"4:5"变成了"4:5"answers"21"变成了"21"。

我写正则表达式有问题,请帮忙。

我尝试了很多变化,但它们基本上归结为(^'d|'d$), (^'d{1}|'d{1}$)和(^[^0-9]'d|[^0-9]'d$)以及它们之间的许多组合

    inRef = inChapter + ':' + inVerse;
    var inReg = /(^[0-9]{1}|[^0-9][0-9]{1}$)/g;     
    inRef = inRef.replace(inReg," $1");
    console.log(inRef);

我从我的努力中得到的很多结果把引用像"6:15"变成"6:15"或"6:15"

提前感谢。

为什么要使用正则表达式?在将章节/节合并为x:y格式之前,您已经将它们作为单独的数据,因此在它们仍然是单独的字符串时进行格式化:

if (inChapter.length == 1) { inChapter = ' ' + inChapter }
inRef = inChapter + ':' + inVerse;

使用正则表达式进行这种超级简单的转换类似于用核武器摧毁一个城市来从架子上取下一些灰尘,而不是使用鸡毛掸子。

给定字符串inChapterinVerse,您可以这样做:

inRef = ("  " + inChapter).slice(-2) + ":" + ("  " + inVerse).slice(-2)

注意这里有两个空格" ",我假设inChapterinVerse只有1或2位数字。

编辑:既然你需要三个数字,我假设你仍然希望这些数字对齐,你可以这样做:
var pad = "   ";   // this is now THREE spaces! 
inRef = (pad + inChapter).slice(-pad.length) + ":" + (pad + inVerse).slice(-pad.length)

那么现在如果你运行所有的inChapterinVerse对,你应该得到这样排列的字符串:

100:100
 20:100
  2:100
100: 10
100:  1
 10: 10
 10:  1
  1:  1